- - PR -
VB.NETで変数にセットされたForm名のFormを操作するには?
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-09-30 23:19
初心者です。よろしくお願いします。
String型の変数にセットされたForm名のFormにあるコントロールを操作したいのですが、 例えば Dim strForm as string = "FormA" Dim strButton as string = "Button1" の時、FormAのButton1のプロパティを参照したり、変更するにはどうすればいいのでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2004-10-01 06:35
諸農です。
Form名前からFormインスタンスを返してくれるような 管理クラスを作ってみるというのはいかがでしょうか。 Form内のコントロールにはControls配列を順に検索する ことになりそうです(ネスト検索の必要性があります) _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2004-10-01 10:04
Webの場合は最終的にHTMLのnameという属性でコントロールの識別が行われるので、コントロールの識別を文字列で行うというのは構わないと思いますが、WindowsFormのアプリケーションの場合はメモリ上のインスタンスをフォームがある名前(例えばButton1)で参照しているというだけで、そのインスタンスがButton1という名前を持っているわけではありません。
文字列でコントロールを指定するというのはどうなんでしょうね。 その文字列からコントロールを取るというのは、どういう意図で行っていることなんですか? 避けることはできませんか? | ||||
|
投稿日時: 2004-10-01 11:33
早速のご回答ありがとうございます。
フォームのクラス名、コントロールのクラス名でも、難しいでしょうか? やりたいことは、一度クリックされたボタンをログにとっておき、再実行したいのですが。 デリゲートを用いて、各ボタンのクリックのメソッドを呼び出そうかと考えているのですが 無理でしょうか? | ||||
|
投稿日時: 2004-10-01 11:45
諸農です。
アプリケーションの存続時間内で、その期間に変更されないボタンの、 ということでしたら、ボタンクリックのイベントハンドラでクリック されたボタンのインスタンスをArrayListなどに保存しておけばいい のではないかと思います。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2004-10-01 11:55
説明不足で申し訳ありません。
アプリケーションの存続時間内ではなく、再起動をかけてから再実行させます。 もっと別のものをログに取っておけば、可能なのでしょうか? | ||||
1
