DOBON.NET DOBON.NETプログラミング掲示板過去ログ

文字列からフォームのインスタンスを起動する方法

環境/言語:[環境 XP 言語 VB.net .Net Framework 2003]
分類:[.NET]


フォームを文字列で起動する方法がわかりません。
VB6.0では
Forms.Add(起動するフォームのName)
でOKでしたが、.Netではできないようです。
同じようなことをやるにはどうしたらよいのでしょうか?
> フォームを文字列で起動する方法がわかりません。
> VB6.0では
> Forms.Add(起動するフォームのName)
> でOKでしたが、.Netではできないようです。
> 同じようなことをやるにはどうしたらよいのでしょうか?

リフレクションを使います。
ActivatorクラスのCreateInstanceメソッドあたりを調べましょう。
遅くなりました。

> リフレクションを使います。
> ActivatorクラスのCreateInstanceメソッドあたりを調べましょう。

調べました。
で、以下のような形にまとめてみました。
ヘルプを読んでも、まだまだ宇宙語がたくさんあります。
もっと精進しないとだめですねぇ。(私)

'プロジェクトにForm1、Form2
'Form1にButtun1あり
Imports System.Runtime.Remoting
Public Class Form1
Inherits System.Windows.Forms.Form
・・・省略
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles Button1.Click
Call OpenForm("Form2")

End Sub

Private Sub OpenForm(ByVal strFrmName As String)
Dim objectHandle As ObjectHandle
Try
objectHandle = _
Activator.CreateInstance(Nothing, _
Me.GetType().Namespace _
& "." & strFrmName)
CType(objectHandle.Unwrap, Form).Show()
Catch
Call MsgBox("起動でけません。")
End Try
End Sub
End Class

よねKENさん、ありがとうございました。
解決済みにするの忘れました。
すみません。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板