- - PR -
VB.NETでコントロール名を表す文字列からコントロールの作成方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-06-21 10:15
いつもお世話になっております。
コントロール名を表す文字列から実際のコントロールを作成する方法を教えてください。 ControlコレクションのAddメソッドを使ってコントロールを追加したいのですが HELPを確認したところ、Addメソッドを呼ぶ前に追加するコントロールを生成(New)する必要があると記述されています。 生成するコントロール名はデータベースのテーブルに格納されているので、コントロール名 文字列から実際のコントロールをNewする必要があります。 VB6では可能だった以下のようなコントロール生成方法をVB.NETで実現する方法を ご教授ください。 Dim c As Control Set c = Controls.Add("VB.TextBox", "Text1") '文字列からコントロール生成 |
|
投稿日時: 2004-06-21 12:37
手順は、
1. Assemblyオブジェクトを取得する。 2. Assembly#GetType()にクラス名(完全名で)を渡し、Typeオブジェクトを取得する。 3. Type#GetConstructor()でConstructorInfoオブジェクトを取得する。 4. ConstructorInfo#Invoke()でインスタンスを作成し、目的の型にキャストして完了。 Java APIのようにClass.ForName()一発コールで作成する方法を見つけることはできませんでした。 ここで、Assemblyオブジェクトの取得は、対象のクラスを含むかまたは、参照しているAssemblyを取得します。実行ファイルで参照されていれば、Assembly#GetExecutingAssembly()で取得できます。 |
|
投稿日時: 2004-06-21 14:03
これ
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=11007&forum=7 |
|
投稿日時: 2004-06-21 14:56
かずくんさん、Jittaさんありがとうございました。
Assemblyオブジェクトを使用してインスタンス作成するのですね。 過去ログと重複する質問をしてしまい、ご迷惑おかけしました。 |
1