- 題名: コントロールの型を指定してコピーを作成したい
- 日時: 2009/09/02 13:48:47
- ID: 25336
- この記事の返信元:
- (なし)
- この記事への返信:
- [25338] Re[1]: コントロールの型を指定してコピーを作成したい2009/09/02 16:25:01
- ツリーを表示
■No25336に返信(FutoNekoさんの記事) > こんにちは。 > > 引数で渡したコントロールに対して > それと同じコントロールを生成したいと思っています。 > ・・・・中略・・・・ > この、New Buttonの部分を、引数のValueに対応したクラスとして > 生成したいのですが、生成する型を動的に変更する方法がわかりません。 こんな感じになるかと思います。 Private m_newControl As Control = Nothing Public Sub CopyControl(ByVal Value As Control) If (Not m_newControl Is Nothing) Then m_newControl.Dispose() Dim t As Type = Value.GetType() m_newControl = _ DirectCast(t.InvokeMember(Nothing, _ System.Reflection.BindingFlags.CreateInstance, _ Nothing, Nothing, Nothing), Control) m_newControl.Parent = Me End Sub
分類:[.NET]
こんにちは。
引数で渡したコントロールに対して
それと同じコントロールを生成したいと思っています。
Dim NewControl as Control
Public Sub ObjectCopyNew(ByVal Value as Control)
NewControl.Dispose()
NewControl = New Button
NewControl.Parent = Me
End Sub
この、New Buttonの部分を、引数のValueに対応したクラスとして
生成したいのですが、生成する型を動的に変更する方法がわかりません。
こちらのテクニック、
文字列で指定されたクラスのインスタンスを作成し、メソッドを実行する: .NET Tips: C#, VB.NET, Visual Studio
http://dobon.net/vb/dotnet/programing/createinstancefromstring.html
または、こちらのテクニック
Dim a As [Assembly] = GetType(Control).Assembly
http://www.atmarkit.co.jp/fdotnet/dotnettips/175createctrl/createctrl.html
の応用になってくると思うのですが
ご存じの方おられましたら教えてください。
よろしくお願いします。