任意のフォームを表示したいのですが。。

解決


タケダ  2003-12-27 02:10:37  No: 81175

業務別にフォームを表示したいのですが、定型で表示するのではなく
表示したいフォーム名をデータにもたして、そのデータを読み表示した
と思うのですが、どのようにしたら出来るのかお教えください

☆通常のフォーム表示
  Dim f as フォーム名
  f = New フォーム名
  f.ShowDialog
上記のフォーム名を変数にしたいのです


ねろ  2003-12-27 03:02:21  No: 81176

VB.NETだよね。
要するにデーターを読み込んで、そのデーター別に、
異なったFormを表示したいということかしら。
Formの名前を変えるだけなら簡単すぎるものね。
あらかじめ表示したいFormのクラスを宣言して、
データーを読み込んでSelect〜Caseで判断してFormを起動する。
これも簡単か、何か全く違うことを聞いているのかな?
>定型で表示するのではなく
定型ってなんだ?


魔界の仮面弁士  2003-12-27 03:04:57  No: 81177

各フォームの完全限定名が分かるなら、可能ですよ。
(完全限定名は、「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()


タケダ  2003-12-27 04:04:45  No: 81178

定数の間違いです<(_ _)>>ねろさん

魔界の仮面弁士  様

解決しました
ほんとうにありがとうございました
これで、設計とおりに事がはこびそうです


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加