次の方法で共有


方法 : オブジェクトをプロシージャに渡す

更新 : 2007 年 11 月

Visual Basic では、オブジェクトを引数として、他の型の引数と同様にプロシージャに渡すことができます。手順を次に示します。

フォームの新しいインスタンスをプロシージャに渡すには

  1. プロジェクトを開き、Form1 という名前の新しいフォームを作成し、Button1 という名前のコマンド ボタンをフォームに追加します。

  2. フォームに次のコードをコピーします。

    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
    

    参照によってオブジェクトを引数として渡し、プロシージャの中で引数を新しいオブジェクトに設定することもできます。

他のフォームのプロシージャにオブジェクト参照を渡すには

  1. プロジェクトを開き、Form1 という名前のフォームを作成します。

  2. Form2 という名前で 2 つ目のフォームを追加します。

  3. 各フォームにピクチャ ボックス コントロールを配置します。

  4. Form1 のピクチャ ボックスに PictureBox1 という名前を付けます。

  5. Form2 のピクチャ ボックスに PictureBox2 という名前を付けます。

  6. [プロパティ] ウィンドウの [ImageUrl] プロパティをクリックして、PictureBox2 にイメージを割り当てます。サイズの小さいイメージを割り当てます。Windows ディレクトリの中の .bmp ファイルや .jpg ファイルを使用することもできます。

  7. 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
    
  8. 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
    
  9. アプリケーションを実行し、Form1 をクリックします。Form1 のピクチャ ボックスに、Form2 のイメージが表示されます。

    Form1_Click イベント プロシージャは、Form2 の GetPicture プロシージャを呼び出し、空のピクチャ ボックスを渡します。Form2 の GetPicture プロシージャは、Form2 のピクチャ ボックスの Image プロパティを Form1 の空のピクチャ ボックスに割り当てます。Form1 には Form2 のイメージが表示されます。

参照

概念

リソースの管理

その他の技術情報

Visual Basic におけるオブジェクト指向プログラミング

コンポーネントによるプログラミング