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

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

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

Re[2]: Icon型のプロパティにおけるDefaultValue


(過去ログ 14 を表示中)

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

■4387 / inTopicNo.1)  Icon型のプロパティにおけるDefaultValue
  
□投稿者/ M.K (22回)-(2007/06/15(Fri) 14:00:47)

分類:[C# (Windows)] 

開発環境:VS2005(C#) WinXP SP2

現在Iconクラスをプロパティに持つカスタムコンポーネントを作成しているのですが、
単純に実装するとカスタムコンポーネントを設置したフォームのInitializeComponent
メソッドの中に初期化処理が追記されてしまいました。

InitializeComponentメソッドに初期化処理を記述したくない場合はDefaultValue属性
を指定すれば良いのですが、Iconの場合どの様に記述すれば良いのかがわかりません。

目指している動作はFormのIconプロパティでして、初期値のアイコンはリソースから
取得され、変更が加わった場合はプロパティシート上で"(アイコン)"が太字になり、
且つ"リセット"が有効になる状態です。

実現方法が分かる方がいらっしゃいましたら教えて頂けると幸いです。
引用返信 編集キー/
■4388 / inTopicNo.2)  Re[1]: Icon型のプロパティにおけるDefaultValue
□投稿者/ 魔界の仮面弁士 (305回)-(2007/06/15(Fri) 14:19:55)
2007/06/15(Fri) 14:21:41 編集(投稿者)

No4387 (M.K さん) に返信
> InitializeComponentメソッドに初期化処理を記述したくない場合はDefaultValue属性
> を指定すれば良いのですが、Iconの場合どの様に記述すれば良いのかがわかりません。

単純なプロパティであれば、[DefaultValue(typeof(型), "データ")] を使いますが、
条件が複雑になる場合には、
 private bool ShouldSerializeプロパティ名() {〜}
 [EditorBrowsable(EditorBrowsableState.Never)] protected virtual void Resetプロパティ名() {〜}
などで対応しましょう。
http://msdn2.microsoft.com/ja-jp/library/53b8022e%28VS.80%29.aspx

# アクセス修飾子や EditorBrowsable は、必要に応じて書き換えてください。
引用返信 編集キー/
■4390 / inTopicNo.3)  Re[2]: Icon型のプロパティにおけるDefaultValue
□投稿者/ M.K (23回)-(2007/06/15(Fri) 14:52:21)
No4388 (魔界の仮面弁士 さん) に返信

>  private bool ShouldSerializeプロパティ名() {〜}
>  [EditorBrowsable(EditorBrowsableState.Never)] protected virtual void Resetプロパティ名() {〜}

上記の方法で上手く行きました。

ReflectorというツールでFormのIconプロパティ周りのソースも追っていたのですが、
まさか別の所でプロパティの制御が行われているとは思っていませんでした。

ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -