|
.NET TIPS PropertyGridコントロールのプロパティ変更時に処理を行うには?デジタルアドバンテージ 一色 政彦2005/04/15 |
![]() |
|
|
|
「TIPS:PropertyGridコントロールを利用するには?」では、PropertyGridコントロールの基本的な使い方を紹介した。本稿では、その応用的な実装として、PropertyGridコントロールによりプロパティの値が変更されたときに何らかの処理を実行する方法を紹介する。なお本稿ではVisual Studio .NETを用いて開発することを前提とする。
●PropertyValueChangedイベント・ハンドラの追加
プロパティの値が変更されたときに処理を行うには、PropertyGridコントロールのPropertyValueChangedイベントを受け取る必要がある。このPropertyValueChangedイベントは、PropertyGridコントロール上でプロパティ値が変更されたときに発生するイベントだ。
具体的には、次の画面の手順でPropertyValueChangedイベント・ハンドラを追加して、そのイベント・ハンドラ内に処理を記述する。
![]() |
|||||||||
| Visual Studio .NETでのPropertyValueChangedイベント・ハンドラの追加手順(VB.NETの場合) | |||||||||
| プロパティの値を変更したときに何らかの処理を行うために、PropertyValueChangedイベント・ハンドラを追加しているところ。 | |||||||||
|
●PropertyValueChangedイベント・ハンドラの処理
後は上記の手順で追加されたPropertyValueChangedイベント・ハンドラの中に、必要な処理を記述すればよい。
例えば本稿では、前掲のTIPSのサンプル・プログラムにPropertyValueChangedイベント・ハンドラを追加して、そのイベント・ハンドラ内に次のようなコードを記述した。このコードでは、PropertyGridコントロールで変更された背景色やウィンドウ状態を取得し、新しい値をフォームのプロパティに反映する。
|
|
| PropertyValueChangedイベント・ハンドラの処理(C#) |
|
|
| PropertyValueChangedイベント・ハンドラの処理(VB.NET) |
PropertyValueChangedイベント・ハンドラでは、パラメータにより引き渡されるPropertyValueChangedEventArgsオブジェクト(System.Windows.Forms名前空間。本稿の例では「e」)のChangedItemプロパティにより、変更されたプロパティ項目であるGridItemオブジェクト(System.Windows.Forms名前空間)を取得できる。GridItemオブジェクトは、PropertyGridコントロールの1行を実装するためのものだ。
上記のコードでは、そのGridItemオブジェクトのPropertyDescriptor.Nameプロパティによりプロパティの名前を取得し、GridItemオブジェクトのValueプロパティにより現在設定されているプロパティの値を取得している。なお、GridItemオブジェクトのPropertyDescriptorプロパティには、PropertyDescriptorクラス(System.ComponentModel名前空間)のオブジェクトが設定されている。これは、プロパティの説明(=情報)を提供するためのものだ。つまり、PropertyDescriptor.Nameというプロパティは、プロパティの説明に関するオブジェクトからName(名前)という情報を取得しているわけである。
そして、取得したプロパティ名(“BackColor”か、“WindowState”か)に従って条件分岐し、それぞれ適切なフォームのプロパティに新しいプロパティ値を設定している。つまり、PropertyGridコントロールの“BackColor”プロパティが変更されればフォームのBackColorプロパティを、“WindowState”プロパティが変更されればフォームのWindowStateプロパティを即座に設定している。
このため、アプリケーションを実行して、例えばBackColorプロパティの項目の値を変更すれば、フォームは次の画面のようになる。
![]() |
||||||
| PropertyValueChangedイベント処理を行うサンプル・プログラムの実行結果 | ||||||
| 前掲の「TIPS:PropertyGridコントロールを利用するには?」のサンプル・プログラムに、PropertyValueChangedイベント処理を追加して、前述のサンプル・コードを記述したサンプル・プログラムを実行したところ。 | ||||||
|
このように、PropertyGridコントロールのPropertyValueChangedイベントを利用することで、プロパティの変更に合わせた動的な処理を実行することが可能になる。![]()
| カテゴリ:Windowsフォーム 処理対象:PropertyGridコントロール 使用ライブラリ:PropertyGridクラス(System.Windows.Forms名前空間) 使用ライブラリ:PropertyValueChangedEventArgsクラス(System.Windows.Forms名前空間) 使用ライブラリ:GridItemクラス(System.Windows.Forms名前空間) 使用ライブラリ:PropertyDescriptorクラス(System.ComponentModel名前空間) 関連TIPS:PropertyGridコントロールを利用するには? |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -





