- PR -

VB.NETで変数にセットされたForm名のFormを操作するには?

1
投稿者投稿内容
Yたろー
会議室デビュー日: 2003/10/22
投稿数: 7
投稿日時: 2004-09-30 23:19
初心者です。よろしくお願いします。
String型の変数にセットされたForm名のFormにあるコントロールを操作したいのですが、
例えば
   Dim strForm as string = "FormA"
   Dim strButton as string = "Button1"
の時、FormAのButton1のプロパティを参照したり、変更するにはどうすればいいのでしょうか?

よろしくお願いします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-10-01 06:35
諸農です。

Form名前からFormインスタンスを返してくれるような
管理クラスを作ってみるというのはいかがでしょうか。
Form内のコントロールにはControls配列を順に検索する
ことになりそうです(ネスト検索の必要性があります)

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-10-01 10:04
Webの場合は最終的にHTMLのnameという属性でコントロールの識別が行われるので、コントロールの識別を文字列で行うというのは構わないと思いますが、WindowsFormのアプリケーションの場合はメモリ上のインスタンスをフォームがある名前(例えばButton1)で参照しているというだけで、そのインスタンスがButton1という名前を持っているわけではありません。

文字列でコントロールを指定するというのはどうなんでしょうね。
その文字列からコントロールを取るというのは、どういう意図で行っていることなんですか?
避けることはできませんか?
Yたろー
会議室デビュー日: 2003/10/22
投稿数: 7
投稿日時: 2004-10-01 11:33
早速のご回答ありがとうございます。

フォームのクラス名、コントロールのクラス名でも、難しいでしょうか?
やりたいことは、一度クリックされたボタンをログにとっておき、再実行したいのですが。
デリゲートを用いて、各ボタンのクリックのメソッドを呼び出そうかと考えているのですが
無理でしょうか?
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-10-01 11:45
諸農です。

引用:

やりたいことは、一度クリックされたボタンをログにとっておき、再実行したいのですが。



アプリケーションの存続時間内で、その期間に変更されないボタンの、
ということでしたら、ボタンクリックのイベントハンドラでクリック
されたボタンのインスタンスをArrayListなどに保存しておけばいい
のではないかと思います。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
Yたろー
会議室デビュー日: 2003/10/22
投稿数: 7
投稿日時: 2004-10-01 11:55
説明不足で申し訳ありません。

アプリケーションの存続時間内ではなく、再起動をかけてから再実行させます。
もっと別のものをログに取っておけば、可能なのでしょうか?
1

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