業務別にフォームを表示したいのですが、定型で表示するのではなく
表示したいフォーム名をデータにもたして、そのデータを読み表示した
と思うのですが、どのようにしたら出来るのかお教えください
☆通常のフォーム表示
Dim f as フォーム名
f = New フォーム名
f.ShowDialog
上記のフォーム名を変数にしたいのです
VB.NETだよね。
要するにデーターを読み込んで、そのデーター別に、
異なったFormを表示したいということかしら。
Formの名前を変えるだけなら簡単すぎるものね。
あらかじめ表示したいFormのクラスを宣言して、
データーを読み込んでSelect〜Caseで判断してFormを起動する。
これも簡単か、何か全く違うことを聞いているのかな?
>定型で表示するのではなく
定型ってなんだ?
各フォームの完全限定名が分かるなら、可能ですよ。
(完全限定名は、「Me.GetType().AssemblyQualifiedName」などで取得出来ます)
(1) TypeクラスのGetTypeメソッドを使って、完全限定名から、特定のフォームを表すTypeを取得。
(2) 得られたTypeのGetConstructorメソッドを使って、既定のコンストラクタを表すConstructorInfoを取得。
(3) そのConstructorInfoのInvokeメソッドを使って、目的のFormオブジェクトを作成。
(4) 最後に、それをShowDialogしてできあがり。
コードで書くと、こんな感じです。
'=========
Dim S As String
S = 完全限定名
Dim F As System.Windows.Forms.Form = DirectCast(System.Type.GetType(S).GetConstructor(New System.Type() {}).Invoke(Nothing), System.Windows.Forms.Form)
F.ShowDialog()
定数の間違いです<(_ _)>>ねろさん
魔界の仮面弁士 様
解決しました
ほんとうにありがとうございました
これで、設計とおりに事がはこびそうです
ツイート | ![]() |