方法 : オブジェクトをプロシージャに渡す
更新 : 2007 年 11 月
Visual Basic では、オブジェクトを引数として、他の型の引数と同様にプロシージャに渡すことができます。手順を次に示します。
フォームの新しいインスタンスをプロシージャに渡すには
プロジェクトを開き、Form1 という名前の新しいフォームを作成し、Button1 という名前のコマンド ボタンをフォームに追加します。
フォームに次のコードをコピーします。
Private Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim newForm As New Form1 newForm.Show() CenterForm(newForm) End Sub Sub CenterForm(ByVal TheForm As Form) ' Centers the form on the screen. Dim RecForm As Rectangle = Screen.GetBounds(TheForm) TheForm.Left = CInt((RecForm.Width - TheForm.Width) / 2) TheForm.Top = CInt((RecForm.Height - TheForm.Height) / 2) End Sub
参照によってオブジェクトを引数として渡し、プロシージャの中で引数を新しいオブジェクトに設定することもできます。
他のフォームのプロシージャにオブジェクト参照を渡すには
プロジェクトを開き、Form1 という名前のフォームを作成します。
Form2 という名前で 2 つ目のフォームを追加します。
各フォームにピクチャ ボックス コントロールを配置します。
Form1 のピクチャ ボックスに PictureBox1 という名前を付けます。
Form2 のピクチャ ボックスに PictureBox2 という名前を付けます。
[プロパティ] ウィンドウの [ImageUrl] プロパティをクリックして、PictureBox2 にイメージを割り当てます。サイズの小さいイメージを割り当てます。Windows ディレクトリの中の .bmp ファイルや .jpg ファイルを使用することもできます。
Form2 に次のコードを追加します。
Public Sub GetPicture(ByVal x As PictureBox) Dim objX As PictureBox ' Assign the passed-in picture box to an object variable. objX = x ' Assign the value of the Picture property to the Form1 picture box. objX.Image = PictureBox2.Image End Sub
Form1 の Form1_Click イベントに次のコードを追加します。
Protected Sub Form1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Dim newForm2 As New Form2 newForm2.GetPicture(PictureBox1) End Sub
アプリケーションを実行し、Form1 をクリックします。Form1 のピクチャ ボックスに、Form2 のイメージが表示されます。
Form1_Click イベント プロシージャは、Form2 の GetPicture プロシージャを呼び出し、空のピクチャ ボックスを渡します。Form2 の GetPicture プロシージャは、Form2 のピクチャ ボックスの Image プロパティを Form1 の空のピクチャ ボックスに割り当てます。Form1 には Form2 のイメージが表示されます。