C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: propertyGridで、項目の動的なenable変更


(過去ログ 18 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■7276 / inTopicNo.1)  propertyGridで、項目の動的なenable変更
  
□投稿者/ nbmyou (23回)-(2007/09/03(Mon) 13:02:03)

分類:[C#] 

2007/09/03(Mon) 13:13:53 編集(投稿者)

【WindowsXP, VisualC#2005】

いつも当掲示板にはお世話になっております。
初心者のnbmyouと申します。

propertyGridを使用した設定画面を作成しているのですが、
readonly属性について質問させてください。

例えば、あるbool型のプロパティAが
TRUEの場合のみ、string型のプロパティBが入力できる(enable=trueの)状態に
falseの場合には、string型のプロパティBが入力できないる(enable=falseの)状態したいと思っています。

調べてみたところ、readonly属性によって、表示のみの項目にできることはわかったのですが、
属性であるため固定値しか設定できず、動的に有効/無効を切り替えることができません。

プロパティを、動的に有効/無効にする方法はありますでしょうか。
お手数ですが、ご教授いただけると助かります。
よろしくお願いいたします。
引用返信 編集キー/
■7282 / inTopicNo.2)  Re[1]: propertyGridで、項目の動的なenable変更
□投稿者/ Hongliang (182回)-(2007/09/03(Mon) 13:37:18)
Hongliang さんの Web サイト
既に、SelectedObject に与えているオブジェクトのクラスに TypeConverter 属性は設定済みであると思います。
その中で独自の PropertyDescriptor を作成していると思いますが、その独自 PropertyDescriptor の IsReadOnly を適切にオーバーライドすることで操作できます。
GetProperties の中で value を解析して直接独自 PropertyDescriptor のコンストラクタに bool として渡してやるのが手っ取り早いかな。
汎用的にやるなら、DisplayName(だっけ?)属性みたいに、IsReadOnlyDependentOn 属性でも定義して、依存するプロパティの名前を使って……なんてことも考えられますが。

あと、多分、PropertyGrid の該当プロパティが変更されたイベントを拾ってグリッドをリフレッシュする必要があります。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -