- PR -

継承コントロール作成時にプロパティ設定について

投稿者投稿内容
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-11 01:50
引用:

まどかさんの書き込み (2006-04-10 23:30) より:

考え方としては逆だと思うんですがどうでしょう。
既定値とは仕様としての値ですよね。
Boolean値のプロパティのヘルプを見るとわかりますが、「既定ではTrueです」などと書かれています。
使うほうが何もしなければその値で振る舞いをおこなうと。


最後の 1 文は明らかにおかしいです、それは「初期値」の意味合いでしかないですね。
「既定値」と「初期値」が相違するものが NCL に存在することをご存知ないのでしょうか?

引用:

なので、InitializeComponentうんぬんというのはあくまで結果としてのツールの挙動という方向性で考えたほうがよろしいかと。


「仕様としての既定の値」という意味合いは、元より理解してますし、
NCL を見ていれば、察することもできるでしょう。(初期値との違いも)

ただ「既定値」を設定することで、説明するには「実感できる変化」を見て欲しかったんですよ。(;^-^)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-04-11 03:31
引用:

最後の 1 文は明らかにおかしいです、それは「初期値」の意味合いでしかないですね。

「仕様としての既定の値」という意味合いは、元より理解してますし、


DefaultValueAttributeクラスのコンストラクタの説明を見て納得。
Setを呼ぶなんてどこにも書いてない。。。
これも旧言語→.NETでの思い込みのひとつですな。。。

「InitializeComponent メソッドで書かれるかどうかを決定」に過剰反応してしまいました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-11 07:36
引用:

まどかさんの書き込み (2006-04-11 03:31) より:

DefaultValueAttributeクラスのコンストラクタの説明を見て納得。
Setを呼ぶなんてどこにも書いてない。。。
これも旧言語→.NETでの思い込みのひとつですな。。。


というよりは、やっぱりややこしいですよ > 「既定値」と「初期値」

引用:

「InitializeComponent メソッドで書かれるかどうかを決定」に過剰反応してしまいました。


あとは、プロパティ ウィンドウのリセット機能くらいしか思いつきません。
あくまでの仕様上の値なので他に影響がないんですよね。(確か)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
gorisaku
ベテラン
会議室デビュー日: 2004/04/17
投稿数: 95
投稿日時: 2006-04-11 10:26
業務で忙しい間にたくさんの書き込みが・・・
私が実現したかったのは、
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
コンポーネントクラスの追加を行い、
InputManの継承を行い、そのフォントの初期設定として赤をデフォルトにした
コンポーネントを作成したい
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
というものです。
コードでは
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
protected override System.Windows.Forms.Control.ControlCollection CreateControlsInstance()
{
this.ForeColor = Colors.Red;
return base.CreateControlsInstance ();
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
と設定しました。
私なりにはこれは「初期値」と思っています。
いかがなのでしょうか?

私が作成したコンポーネントクラスだと InitializeComponentメソッドは
存在しないのでDefaultValue・・・で設定する方法がとられるのでしょうか?
その際はどのように記述してみたらよいのでしょう?
本当は自分でHELPを見て調べてみることが第一なのですが、
現在本当に時間が無くて私自身でも答えだけでも分かればと思っています。
今後の勉強のためにもご意見、ご助言をいただけないでしょうか?

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-11 10:33
引用:

gorisakuさんの書き込み (2006-04-11 10:26) より:

私なりにはこれは「初期値」と思っています。
いかがなのでしょうか?


「初期化」は、コンストラクタで良いと思います。

引用:

私が作成したコンポーネントクラスだと InitializeComponentメソッドは
存在しないのでDefaultValue・・・で設定する方法がとられるのでしょうか?


いいえ、コンポーネントとして外部から (フォームから) 利用される場合の話ですから関係ありません。
「初期値」から「既定値」に話が移行してしまったのは、DefaultValueAttribute の話が出てきたからです。

最初に申し上げたとおり、

> 初期値ならば、コンストラクタですね。

で良いと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

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