.NET TIPS PropertyGridコントロールの表示内容をカスタマイズするには?デジタルアドバンテージ 一色 政彦2005/06/24 |
|
|
「TIPS:PropertyGridコントロールを利用するには?」ではWindowsフォーム用のPropertyGridコントロールの基本的な使い方を紹介し、「TIPS:PropertyGridコントロールの外観をカスタマイズするには?」ではPropertyGridコントロールの外観のカスタマイズ方法(背景色やフォント・サイズの変更など)について説明した。
本稿では、PropertyGridコントロールのグリッド領域や説明領域の内容をカスタマイズする方法を紹介する。なお本稿は、Visual Studio .NET(以降、VS.NET)のIDEを利用することを前提としている。
PropertyGridコントロールの表示内容をカスタマイズする属性
PropertyGridコントロールでの表示内容をカスタマイズするには、PropertyGridコントロールに指定するオブジェクトのクラスで実装しているプロパティに対して、次の表に示す属性を追加すればよい。
属性(指定するデータ型) | カスタマイズ内容 |
DefaultProperty属性("文字列") | クラスの「既定のプロパティ」を指定する。この属性は、以降で説明する属性とは異なり、プロパティ自体ではなく、クラスに指定する必要がある。この属性で指定されたプロパティは、PropertyGridコントロールが表示されるときに最初にフォーカスが設定される |
DefaultValue属性("文字列") | プロパティの「既定の値」を指定する(文字列値のほかにもObject型の値なども指定できる)。この属性に指定された文字列値は、PropertyGridコントロールでプロパティの既定の値として用いられる。ちなみにPropertyGridコントロールで既定値以外の値が指定されると、その値は太字で表示される |
ReadOnly属性(Boolean値) | プロパティの「読み取り専用」を指定する。この属性をTrueに指定されたプロパティは、PropertyGridコントロールで編集することができなくなる。ただし、この属性により読み取り専用に指定されても、コードからsetアクセサを用いてプロパティを編集することは可能である |
Browsable属性(Boolean値) | プロパティの「参照可能」を指定する。この属性をFalseに指定されたプロパティは、PropertyGridコントロールに表示されなくなる |
Description属性("文字列") | プロパティの「概要説明」を指定する。この属性に指定された文字列値は、PropertyGridコントロールでプロパティが選択されたときに、コントロールの説明領域に表示される |
Category属性("文字列") | プロパティの「カテゴリ」を指定する。この属性に指定された文字列値は、PropertyGridコントロールでプロパティのカテゴリ名として用いられる。既存のカテゴリ名を指定することで、同じカテゴリ内にプロパティをまとめたり、分類したりすることができる |
PropertyGridコントロールの表示内容をカスタマイズするための主な属性群 | |
「○○属性」と書かれているものは、正式には「○○Attributeクラス」のことである。属性クラスの語尾にある「Attribute」はコーディング時には省略することができるが、実際にはコンパイラがコンパイル時に「Attribute」を自動的に付加している。 |
次のコードは、上の表にある属性を実際にプロパティに対して利用している(このコードは、「TIPS:PropertyGridコントロールを利用するには?」で掲載したコードに、さらにプロパティや属性などを追加したものである)。
|
|
属性指定によりPropertyGridコントロールの表示内容をカスタマイズするサンプル・コード(C#) |
|
|
属性指定によりPropertyGridコントロールの表示内容をカスタマイズするサンプル・コード(VB.NET) |
なおプロパティへの属性の指定は、上のコードのように1つだけでなく、次のように複数連ねて記述することもできる。
|
||
複数連ねて記述した属性の指定(上:C#、下:VB.NET) |
上記のサンプル・コードを実際に実行したのが、次の画面である。
PropertyGridコントロールの表示内容をカスタマイズした結果 | |||||||||||||||
前述の属性群を利用することで、このようにPropertyGridコントロールの表示内容をカスタマイズできる。なお、BrowsablePropertyプロパティは、Browsable属性を指定したために、この画面には表示されていない。 | |||||||||||||||
|
以上がPropertyGridコントロールのプロパティの表示内容をカスタマイズする方法だ。しかしこの属性指定だけでは、ホット・コマンド領域やツールバー領域の表示をカスタマイズすることはできない。それらをカスタマイズする方法については、後日あらためて紹介したい。
カテゴリ:Windowsフォーム 処理対象:PropertyGridコントロール 使用ライブラリ:PropertyGridクラス(System.Windows.Forms名前空間) 使用ライブラリ:DefaultProperty属性(System.ComponentModel名前空間) 使用ライブラリ:DefaultValue属性(System.ComponentModel名前空間) 使用ライブラリ:ReadOnly属性(System.ComponentModel名前空間) 使用ライブラリ:Browsable属性(System.ComponentModel名前空間) 使用ライブラリ:Description属性(System.ComponentModel名前空間) Category属性(System.ComponentModel名前空間) 関連TIPS:PropertyGridコントロールを利用するには? 関連TIPS:PropertyGridコントロールの外観をカスタマイズするには? |
「.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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|