投稿者 zz6989  (社会人) 投稿日時 2012/6/5 06:54:45
スピリタス さんへ、先日はご迷惑おかけしました。

>1.初期表示はFORM1を表示、ボタンをクリックするとFORM2を表示

>2.FORM2のリストボックスをエンターまたはダブルクリックするとその値をFORM1のテキストボックスにセットしてFORM2を閉じFORM1のテキストボックスをフォーカス

以上のケースと、るきお先生の書いてくださったコードを崩さずにサンプルを書いてみました。
但し、問題は、るきを先生のご意見「プロジェクトのプロパティ画面でシャットダウンモードを「最後のフォームが閉じるとき」に変更してください。」は初期状態のままですが、これですとスピリタス さんの目的は果たされないんですよね?

Form1側
Public Class Form1
    Public Overloads Sub Show(value As String)
        TextBox1.Text = value
        Me.Show()
        TextBox1.Focus()  '追加した部分です。 

    End Sub
    'ボタンをクリックしたときにForm2を表示します。  追加した部分です。 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim f As New Form2
        f.Owner = Me
        f.Show()
    End Sub

End Class
 


Form2側
Public Class Form2

    Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ListBox1.Items.AddRange({"Apple""Banana""Cat""Dog"})

    End Sub
    Private Sub ListBox1_DoubleClick(sender As Object, e As System.EventArgs) Handles ListBox1.DoubleClick

        If ListBox1.SelectedItem Is Nothing Then
            '何も選択されていなければ何もしない。  
            Return
        End If

        '追加した部分です 
        Dim selectst As String
        selectst = ListBox1.SelectedItem
        Dim f As New Form1
        f = Me.Owner
        f.Show(selectst)

        Me.Close()
    End Sub
    Private Sub ListBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles ListBox1.KeyPress

        If e.KeyChar = Chr(Keys.Enter) Then
            ListBox1_DoubleClick(sender, e)
            
        End If
        
        Me.Close()

    End Sub

End Class