- - PR -
Form のプロパティを Control の初期化処理で参照したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-01-28 13:23
VB.NET でWindowsフォームアプリを開発しています。
初期設定処理において、Form 上に配置された Control の初期化時に、 これが配置されている Form のプロパティを参照して、その値に 対応した初期化処理を行ないたいと考えています。 ただ、これを実現するための前提として、 ・上記 Control の初期化時には、この Control は Form に Add されている必要がある ・同様に、Form の対象プロパティがセットされている必要がある と思います。 このような、各 Control の初期化処理は、どこに実装すべきでしょうか。 VS.NET が自動生成するソースを見てみると、 ・Control が New されるタイミングでは、まだ Form に Add されて いないようだ。 ・Form のプロパティ設定は、各 Control のプロパティ設定よりも 後に行なわれている ・Control が Form に Add された時には Form のプロパティがセット されていることが保証されるのか? (Form の Name や Text プロパティは、各 Control が Add されてから 設定されているようだが。。) ということを考えると、Control が Add されたタイミングでセット すべきか?とも思えるのですが、いまいち確証が持てません。 | ||||
|
投稿日時: 2004-01-28 15:05
これで確証が持てますね! // file: testform.cs // compile csc /t:winexe testform.cs using System; using System.Windows.Forms; namespace MyForms { public class TestForm : Form { public static void Main() { Application.Run(new TestForm()); } public TestForm() { Text = "Test Form"; Width = 200; Height = 100; CenterToScreen(); Button b = new Button(); b.Text = this.Text; b.Click += new EventHandler(clickHandler); Controls.Add(b); } private void clickHandler(object sender, EventArgs e) { Text = String.Format("OK?!"); } } } [ メッセージ編集済み 編集者: iStation 編集日時 2004-01-28 15:14 ] | ||||
|
投稿日時: 2004-01-28 16:37
単純にFormのLoadイベントで初期処理を行えばよいと思います。 もしこの方法ではまずいということであれば、 まずい理由ともう少し具体的なやりたいことを提示して下さい。 |
1