- PR -

デザイン時に変更したカスタムプロパティが反映されない

1
投稿者投稿内容
キキーヌ
常連さん
会議室デビュー日: 2005/11/25
投稿数: 22
投稿日時: 2008-01-17 16:34
オリジナルのフォームを作成しようと継承先フォームに
独自のプロパティを作成しました。
また、汎用的に使えるようDLL内にあり、
別プロジェクトではこのDLLを追加して使用します

------------------------------------------------
public class FormD : Form
{
private bool _startVisible;

[Category("表示"), DefaultValue(true)]
[DesignOnly(true)]
[Description("プロパティの説明")]
public bool StartVisible
{
get { return _startVisible; }
set { _startVisible = value; }
}
}
------------------------------------------------

プロジェクトでこのフォームを追加すると
プロパティには確かに表示され、デザイン時から
値の変更(true, false)の変更ができます。

しかし、実行するとデザイン時に設定した値が反映
されていません。

どなたかわかる方いませんでしょうか?

環境 : VS2005 SP1

他に調査したことは
デザイナ上でユーザーがコントロールを変更したときは
値が反映されません。
これらの変更を反映させる為には、IComponentChangeService
インターフェイスの実装を利用すると言うことですが
基本型?int, bool とかを反映させるのに使用する必要はなさそうなんです。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-01-17 16:57
利用している Form の InitializeComponent メソッドで StartVisible を変更しているコードが自動生成されていますでしょうか? それとも生成されていないでしょうか? それによって考えうる原因が変わってくると思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
キキーヌ
常連さん
会議室デビュー日: 2005/11/25
投稿数: 22
投稿日時: 2008-01-17 18:40
継承元、継承先のInitializeComponent メソッドを調査しましたが
代入している箇所はみつかりませんでした。
キキーヌ
常連さん
会議室デビュー日: 2005/11/25
投稿数: 22
投稿日時: 2008-01-17 18:57
じゃんぬねっとさんありがとうございます。

解決しました。

たぶんですが、[DesignOnly(true)]
を設定しているためにエディタ内でコードが生成されなかった
ような気がします。

お騒がせしてすみませんでした。
1

スキルアップ/キャリアアップ(JOB@IT)