.NET TIPS

PropertyGridコントロールの外観をカスタマイズするには?

デジタルアドバンテージ 一色 政彦
2005/04/29

 「TIPS:PropertyGridコントロールを利用するには?」では、Windowsフォーム用のPropertyGridコントロールの基本的な使い方を紹介した。本稿では、その応用として、PropertyGridコントロール自体の外観をカスタマイズする方法を紹介する。なお本稿は、Visual Studio .NET(以降、VS.NET)のIDEを利用することを前提としている。

 PropertyGridコントロールを構成する基本的なパーツ(=領域)には、次の画面のようなものがある。

PropertyGridコントロールを構成する基本パーツ
PropertyGridコントロールは、このような領域に分けられる。
  ツールバー領域。「項目別」(=カテゴリ別)と「アルファベット」という並べ替え用ボタン、「プロパティ ページ」ボタンがデフォルトで配置されている。なおこの画面例では「プロパティ ページ」のボタン(右端)は無効状態になっている。
  グリッド領域。カテゴリごと(この例では「その他」のみ)に分類されて、左側にプロパティ名、右側にプロパティ値の形式でグリッドが表示される。
  ホット・コマンド領域。この領域に表示されるリンク・テキストをクリックすればダイアログなどが表示され、それを使ってより高度なプロパティ設定を簡単に素早く実行できる。例えばVS.NETでDataGridコントロールのプロパティを設定する場合、このホット・コマンド領域に表示されるリンク・テキスト(この場合には「自動フォーマット(A)」)をクリックすると、テーブルの表示スタイルを簡単にカスタマイズできる。
  説明領域(=説明ペイン)。グリッド領域で選択しているプロパティの説明が表示される。

 これらの各領域の表示内容をカスタマイズする方法については、後日公開予定のTIPSであらためて紹介したい。本稿では、これらの各パーツの外観をカスタマイズすることに焦点を絞って説明する。

 これらの外観をカスタマイズするには、次の表に示すPropertyGridコントロールの各プロパティを設定すればよい。

カスタマイズする領域 プロパティ名(型) カスタマイズ内容
コントロール全体 BackColorプロパティ
(Color構造体)
領域のすき間(=分割線)やツールバーなどの背景色
Fontプロパティ
(Fontクラス)
コントロール全体のフォント
ツールバー領域 ToolbarVisibleプロパティ
(Boolean構造体)
ツールバー領域の表示/非表示
LargeButtonsプロパティ
(Boolean構造体)
ツールバー・ボタンのサイズを大きくする/小さくする
グリッド領域 ViewBackColorプロパティ
(Color構造体)
グリッド領域の背景色
ViewForeColorプロパティ
(Color構造体)
グリッド領域の前景色(テキストなど)
PropertySortプロパティ
(PropertySort列挙体)
並べ替え順の値は次のとおり。
・CategorizedAlphabetical=カテゴリ別(カテゴリ内はアルファベット順)
・Categorized=カテゴリ別(アルファベット順の並べ替えは行われない)
・Alphabetical=アルファベット順(カテゴリ分けは行われない)
・NoSort=並べ替えなし(カテゴリ分けもなし)
LineColorプロパティ
(Color構造体)
グリッドの線やカテゴリ名などの枠
ホット・コマンド領域 CommandsVisibleIfAvailableプロパティ
(Boolean構造体)
ホット・コマンド領域の表示/非表示(ただしホット・コマンドが設定されていなければ、この領域は常に非表示となる。ホット・コマンドの設定方法については後日紹介する)
CommandsBackColorプロパティ
(Color構造体)
ホット・コマンド領域の背景色
CommandsForeColorプロパティ
(Color構造体)
ホット・コマンド領域の前景色
説明領域 HelpVisibleプロパティ
(Boolean構造体)
説明領域の表示/非表示
HelpBackColorプロパティ
(Color構造体)
説明領域の背景色
HelpForeColorプロパティ
(Color構造体)
説明領域の前景色
PropertyGridコントロールの外観をカスタマイズするためのプロパティ群
これらのプロパティ群で特に注意が必要なのは、ホット・コマンド領域の表示の有無を指定するためのCommandsVisibleIfAvailableプロパティである。このプロパティの実際のデフォルト値はTrueだが、VS.NETの[プロパティ]ウィンドウではデフォルト値が「False」になってしまっている(これはVS.NETのバグ、厳密には.NET Frameworkクラス・ライブラリのバグである)。このため、VS.NETの[プロパティ]ウィンドウでCommandsVisibleIfAvailableプロパティを「False」に切り替えても、(デフォルト値が指定されたと見なされてプロパティ設定のコードが省略されるので)その設定は正常に働かない(=ホット・コマンド領域が常に表示されてしまう)結果となる。これを回避するには、CommandsVisibleIfAvailableプロパティに限っては、[プロパティ]ウィンドウでの指定ではなく、手動で「False」を指定するコードを記述しなければならい。

 次の画面は、これらのプロパティ群を実際に設定してみた結果である。

PropertyGridコントロールの外観をカスタマイズした結果
前述のプロパティ群を利用することで、このようにPropertyGridコントロールの外観をカスタマイズできる。[プロパティ]ウィンドウでの設定内容と、設定したプログラムを実行した結果を見比べると、それぞれのプロパティ設定によりPropertyGridコントロールのどの部分の外観が変更されるのかが分かるだろう。
  [プロパティ]ウィンドウを使ってPropertyGridコントロールの外観をカスタマイズしたところ。
  プロパティ設定により外観をカスタマイズしたPropertyGridコントロールを実際に実行してみたところ。

 以上でPropertyGridコントロール自体の外観をカスタマイズする方法はご理解いただけただろう。さらに、グリッド領域の中の表示内容をカスタマイズする方法については「TIPS:PropertyGridコントロールの表示内容をカスタマイズするには?」や、ホット・コマンド領域や説明領域の中に任意の情報を表示する方法などについては、後日あらためて紹介したい。End of Article

カテゴリ:Windowsフォーム 処理対象:PropertyGridコントロール
使用ライブラリ:PropertyGridクラス(System.Windows.Forms名前空間)
関連TIPS:PropertyGridコントロールを利用するには?
関連TIPS:PropertyGridコントロールの表示内容をカスタマイズするには?
 
この記事と関連性の高い別の.NET TIPS
PropertyGridコントロールの表示内容をカスタマイズするには?
PropertyGridコントロールを利用するには?
PropertyGridコントロールのプロパティ変更時に処理を行うには?
PropertyGridコントロールに表示されるプロパティ名を変更するには?
ある座標や領域がコントロールの領域内に含まれているかを確認するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間