ヘッダー

VB.NET2002対応 VB.NET2003対応 VB2005対応

 

クラスを動的にロードする

1.フォームにドライブリストボックスを動的に追加する

通常はドライブリストボックスをフォームに追加するには事前にVB6互換クラスを参照設定する必要がある。ここではこれらの処理をすべて動的に行う。

VB.NET2002対応 VB.NET2003対応 VB2005対応

Dim DLLPath As String '対象のクラスが宣言されているDLLファイルのフルパス
Dim ClassName As String '対象のクラスの完全名(例:System.String)
Dim Handler As System.Runtime.Remoting.ObjectHandle
Dim o As
Object

'▼クラスのインスタンスを取得
DLLPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Microsoft.VisualBasic.Compatibility.dll"
ClassName = "Microsoft.VisualBasic.Compatibility.VB6.DriveListBox"
Handler = Activator.CreateInstanceFrom(DLLPath, ClassName)

'▼ラップを解除
o = Handler.Unwrap

'▼基本的なプロパティの設定
o.Name = "DriveListBox1"
o.Visible =
True

'▼フォームに追加
Me.Controls.Add(o)

メモ:

・この例は.NET Framework 1.1を利用しています。.NET Framework 1.1がインストールされていないなどの理由で利用できない(または利用したくない)場合は変数DLLPathの値を適切なものに変更してください。

→以下のサンプルでは.NET Frameworkのインストールパスを取得することができます。

.NET Frameworkのインストールパスを取得する

 


VB6対応  VB6では読み込み可能なクラスはすべてActiveXですのでここでいう「クラスを動的にロードする」という考え方があてはまりません。ActiveXを動的にロードするにはCreateObject関数やGetObject関数を使用します。