【C#/WinForms】OTZControls v5.7.0 を公開

C#
この記事は約9分で読めます。

Windows Forms 用コントロール(OTZControls)の v5.7.0 を公開しました。開発言語は C# です。

コントロールイメージ

こんな感じのフォームとコントロールになります。タイトルバーを非表示にして独自に実装しています。タイトルバーを 自作しているので、ボタンの追加が簡単にできます。

Win32 UI Gallery(カスタム) タブ の トグルボタンタブオンリーコントロールスクロールバースプリッターは自作しています。

v5.7.0(2024/10/20)

以下の対応が含まれます。

  • Windows 11 のダークモードは角丸ボタンになるようにした
  • メニューとコントロールの配色を外部から変更可能にした
  • その他軽微な修正

v5.6.5(2024/09/24)

以下の対応が含まれます。

  • スクロールバーコントールの表示/非表示は親コントロールの表示状態をみるようにした
  • スクロールバーとの違いがわかりにくいためスプリッターコントロールの背景色を調整した
  • スプリッターコントロールをドラッグすると表示位置がおかしくなる不具合を修正した
  • タイトルバーのタイトルに & が含まれるとニーモニックプレフィックス文字になる不具合を修正した
  • タブコントロールの矢印ボタンをクリックしてもタブが描画されない不具合を修正した
  • その他軽微な修正

v5.6.4(2024/09/16)

以下の対応が含まれます。

  • スプリッターコントロールの移動時の範囲に最小値を設定可能にした
  • チェックボックスの文字列を折り返して表示するとチェックボックスの表示位置がおかしい不具合を修正した
  • タブオンリーコントロールで閉じるボタンをドラッグすると例外エラーが発生する不具合を修正した
  • タブオンリーコントロールにエフェクトを追加した
  • マルチテキストボックスとリストボックスを単体コントロールに変更した(v5.3.0での対応を元に戻した)
  • 更新履歴はバージョン主体で記載するようにした
  • その他軽微な修正

v5.6.3(2024/08/18)

以下の対応が含まれます。

  • タブオンリーコントロールのタブの移動モードを追加した
  • コンテキストメニューのチェック時の表示方法に行モードを追加した
  • ラベルコントロールがダークモードの場合でも改行文字をそのまま描画するようにした
  • 無効時の文字の色を変更した(ライトモード時のみ)
  • チェックボックスコントロールを OS のスタイルで描画するようにした(ライトモード時のみ)
  • その他軽微な修正

v5.6.2(2024/07/16)

以下の対応が含まれます。

  • チェックボックスのフォーカス線を文字列の幅で設定するようにした
  • タイトルバーのボタンを透過するようにした
  • 起動中の DPI 変更処理を見直した
  • アクセントカラーが設定されない不具合を修正した
  • ナンバーボックスとスライダーコントロールの ALT キーの入力を許可するようにした
  • テーマを刷新した
  • その他軽微な修正

v5.6.1(2024/05/19)

以下の対応が含まれます。

  • タイトルバーが2重で出る不具合を修正した
  • スライダーを矢印キーで変更可能にした
  • その他軽微な修正

v5.6.0(2024/05/19)

以下の対応が含まれます。

  • フレームワークを .NET 8 にした
  • OTZNumberBox コントロールを追加した
  • カラーコンボボックスとフォントコンボボックスの内容は任意のタイミングでリストを作るようにした
  • Windows 11 の場合にタイトルバーのボタンのツールチップが表示されない不具合を修正した
  • ステータスバーのグリップスタイルに Visual Studio を追加した
  • ウィンドウのヒットテストを見直した
  • ステータスバーのグリップを Windows 標準に近付けた
  • タブオンリーコントロールにマウスホイールでタブの単一行と複数行を切り替える機能を追加した
  • タブオンリーコントロールのマウスホイールボタンダウンでタブを閉じられるようにした
  • その他軽微な修正

v5.5.0(2024/04/28)

以下の対応が含まれます。

  • チェックボックスのフォーカス線を描画するようにした
  • タブオンリーコントロールのタブが操作パネルと重ならないように修正した
  • オーバーフローボタンに表示されるアイコンの背景色がグレーになる不具合を修正した
  • タイトルバーのボタンに表示されるツールチップに標準に変更した
  • タイトルバーのテキストを真ん中に表示する場合はできる限り真ん中に表示するようにした
  • フォントアイコンを Windows 11 に対応した
  • タイトルバーのボタンも背景画像を描画するようにした
  • Windows XP テーマのアイコン周りの描画を見直した
  • ダークテーマの矢印の色をメニューの文字色と同じにした
  • トラックバーにカスタムドローを追加した

v5.4.4(2024/03/30)

以下の対応が含まれます。

  • 最大化ボタンが非表示の状態でも最大化できる問題を修正した
  • ウィンドウスタイルが None の場合の処理を見直した
  • 標準トラックバーコントロールを追加した
  • スライダーコントロールの縦バージョンを追加した
  • 公開ファイル名を OTZControls に変更した
  • その他っ軽微な修正

v5.4.3(2024/03/24)

以下の対応が含まれます。

  • スライダーコントロールを追加した
  • タブオンリーコントロールの DPI 対応を見直した
  • カスタムタイトルバーの場合のウィンドウの枠とエッジ処理を見直した
  • その他軽微な修正

v5.4.2(2024/03/20)

v5.4.0で追加した Window XP テーマを画像ではなく描画するようにしました。高DPIにも対応しています。

  • カラーコンボボックスを色合いでソートするようにした
  • Windows XP テーマのタイトルバーのボタンを画像から描画するようにした
  • タブオンリーコントロールを高DPIに対応した
  • 標準タイトルバー以外のテーマの場合にウィンドウの影が消える問題を修正した
  • 名前をトグルボタンをトグルスイッチに変更した(WinUI3 にあわせた)
  • トグルスイッチに無効スタイルを追加した
  • その他軽微な修正

v5.4.1(2024/03/02)

主にv5.4.0 の不具合対応です。

  • タブページだけコンテキストメニューを表示するようにした
  • Windows XPテーマの最大化と元に戻すアイコンが逆になっていたのを修正した
  • その他軽微な修正

v5.4.0(2024/03/02)

Windows XP のテーマを追加しました。懐かしいですね。ぜひぜひ試してみてください。

  • Windows XP のテーマを追加した
  • タイトルバーのタイトルを中央に表示できるようにした
  • タイトルバーのアイコンの背景が透過しないので背景色を透明に変更した
  • テキストボックスコントロールを追加した
  • 従来のテキストボックはマルチラインテキストボックスコントロールに変更した
  • オンリータブコントロールのタブ一覧の表示位置をマルチモニターを考慮した位置に表示するようにした
  • スプリッターコントロールを追加した
  • サンプルアプリを単一ファイルのビルドにした
  • その他軽微な修正

v5.3.9(2024/02/15)

下記不具合対応になります。全然気付きませんでした。ご指摘ありがとうございました。

  • OTZForm の MinimizeBox と MaximizeBox が正常に機能しない不具合を修正した

  フォーラム OTZForm.MinimizeBox & MaximizeBoxが正常に機能していない

  • ターゲット OS バージョンを Windows 10 にした
  • その他軽微な修正

v5.3.8(2024/01/13)

標準タブコントロールのタブを非表示にできるようになりました。標準タブコントロールの ShowTab プロパティを false にすると非表示にできます。タブを非表示にすることで、複数のページを切り替えできるようなパネルコントロールとして利用できるようになります。

こんな感じで左のメニューを選択すると該当するタブページへ切り替えるような使い方ができます。自作テキストエディタのオプション画面で利用しています。便利ですね。

  • タイトルバーのタイトルを変更しても変更されない問題を修正した
  • タイトルバーのタイトルとボタンのフォントサイズを DPI 変更時に再設定するようにした
  • タブコントロールのタブを非表示にするプロパティを追加した
  • ライト(.NET) テーマのタイトルバーの背景色を白にした
  • その他軽微な修正

v5.3.7(2024/01/02)

従来はフォームのエッジを有効にした場合、ウィンドウの枠線が描画されませんでしたがこれを描画するようにしました。ただし、動作環境が Windows 11 の場合のみです。

  • Windows 11 の場合に標準のライトテーマに反映できない問題を修正した
  • フォームのエッジを有効時にウィンドウの枠線を描画するようにした(Windows 11の場合のみ)
  • 更新履歴をマークダウン形式に変更した
  • その他軽微な修正

v5.3.6(2023/12/18)

スクロールバーの イベントで newValue の値が最大値を超える不具合を修正しました。

v5.3.5(2023/12/11)

完全自作スクロールバー(OTZScrollBar)とは別に標準スクロールバー(OTZHScrollBar、OTZVScrollBar)をダークモードに対応しました。

v5.3.4(2023/12/05)

通常非クライアント領域を削除するとウィンドウのエッジ部分も削除されてしまいますが、エッジ部分を通常ウィンドウのようにエッジを利用できるようにしました。サンプルプラグラムではメニューの その他フォームのエッジを有効にする でエッジを有効にできます。

ソースコードで有効にする場合は UseEdge プロパティを true にしてください。ただし、エッジは標準タイトルバーのライト(Windows)とダーク(Windows)テーマでは無効です。また、エッジを利用するとハイコントラストのような黄色の枠線の描画は無くなります。

v5.3.3(2023/11/06)

  • フォーム上のコントロールにフォームのテーマを適用できるようにした

AutoUpdateChildControlTheme プロパティに true を設定するとフォームテーマが変更されると自動でコントロールのテーマも変更されるようにしました。

AutoUpdateChildControlTheme プロパティが false の場合にコントロールのテーマを更新する場合は UpdateChildControlTheme メソッドを呼び出すとフォームに適用したテーマをフォーム上のコントロールに適用します。

  • カラーコンボボックスにシステムカラーとカラーコードでソートする機能を追加しました。

ダウンロード

ダウンロードはこちら。動作には .NET 8.0 が必要です。API リファレンスはこちら

おわりに

ダークモードフォームのバグやご要望などはフォーラムからお願いいたします。C#最強で唯一無二を目指しています。

コメント

  1. Atom より:

    素晴らし開発に敬意を表します。
    OTZLabelコントロールですが、オーバーライドしたOnPaintメソドの中で、DrawTextメソッドのTextFormatFlagにSingleLineを指定しているので、DarkTheme時に改行コードを含んだ文字列を正しく描画できません。
    仕様なら仕方ないのですが、…

    申し訳ないのですが、当方では一時的にSingleLine指定を外して使用しています。

    • TZ TZ より:

      ご指摘ありがとうございます。
      複数行の描画を全く考慮できていませんでした。。。
      次回のバージョンで対応いたします。

    • TZ TZ より:

      お待たせしました。
      v5.6.3 で対応いたしました。

      • Atom より:

        早速の対応をいただき、ありがとうございます。

        • TZ TZ より:

          ご指摘ありがとうございました。
          今後も更新予定です。よろしくお願いいたします。

タイトルとURLをコピーしました