別のフォームのテキストボックスの操作について

タグの編集
投稿者 かつ  (社会人) 投稿日時 2018/7/4 13:12:24
メインフォームからサブフォーム(Master)のテキストの表示について質問です。
 私VB6はずっとやってきていたのですが、.NETはまだ初心者なので初歩的な質問ですみません。
Vsisual Basic 2013 Express 2013 を使用しています。

 下記① 
 butGPIBInit_Clickでサブフォームのイベント動かしたいので
VB中学校の第29回 2つ目のフォームのように
        Dim f As New Master
         f.Owner = Me
         f.Show()
を使用する事で サブフォームの
Call f.cmdInit_Click(butGPIBInit, e) やCall f.cmdSearch_Click(butGPIBInit, e)のイベントを動かす事ができました。

その後下記②
 cmbGPIB_SelectedIndexChangedで
        f.cboAddr.SelectedIndex = cmbGPIB.SelectedIndex ・・・A
         f.txtAddr.Text = "123"  ・・・B
   とコンボボックスやテキストボックスの値を変更したいので値が変わりません。
 上記・・・Aはエラーが発生し、・・・Bは値が変わりません。
すいませんが、どなた様かアドバイスの程お願い致します。

① butGPIBInit_Click
    Private Sub butGPIBInit_Click(sender As Object, e As EventArgs) Handles butGPIBInit.Click
         Dim f As New Master
         Dim i As Integer
         f.Owner = Me
         f.Show()
         System.Windows.Forms.Application.DoEvents()
         Call f.cmdInit_Click(butGPIBInit, e)
         Call WaitTime(500)
         If f.lstRet.Items(f.lstRet.Items.Count - 1) <> "「初期化」正常終了" Then
             MsgBox("「初期化」正常終了" & "ができませんでした!")
         End If
         Call f.cmdSearch_Click(butGPIBInit, e)
         If f.cboAddr.Items.Count <> 0 Then
             If f.lstRet.Items(f.lstRet.Items.Count - 1) = "「相手機器の検索」正常終了" Then
                 cmbGPIB.Items.Clear()
                 Do
                     cmbGPIB.Items.Insert(i, f.cboAddr.Items(i))
                     ComboBox2.Items.Insert(i, f.cboAddr.Items(i))
                     i = i + 1
                 Loop Until i = f.cboAddr.Items.Count
                 MsgBox("「相手機器の検索」正常終了")
                 txtGPIBSend.Enabled = True
             Else
                 MsgBox("「相手機器の検索」正常終了" & "ができませんでした!")
             End If
         End If
         f.txtAddr.Text = "123"
         f.txtSend.Text = "123"
     End Sub

 ②cmbGPIB_SelectedIndexChanged
     Private Sub cmbGPIB_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbGPIB.SelectedIndexChanged
         Dim i As Integer = 1
         Dim strGPIBAdr As String = ""
         Dim NumericStart As Boolean
         Dim NumericStop As Boolean
         Dim f As New Master
         f.Owner = Me
         Do
             If IsNumeric(Strings.Mid(cmbGPIB.SelectedItem, i, 1)) = True Then
                 strGPIBAdr = strGPIBAdr & Strings.Mid(cmbGPIB.SelectedItem, i, 1)
                 NumericStart = True
             Else
                 If NumericStart = True Then NumericStop = True
             End If
             i = i + 1
         Loop Until NumericStart = True And NumericStop = True
         f.cboAddr.SelectedIndex = cmbGPIB.SelectedIndex
         f.txtAddr.Text = "123" 'strGPIBAdr
     End Sub
投稿者 shu  (社会人) 投稿日時 2018/7/4 16:32:51
 Private Sub butGPIBInit_Click

Dim f As New Master

Form内のPrivate変数として定義
Private f As Master

f.Owner = Me
f.Show()

の前に f = New Master()

Private Sub cmbGPIB_SelectedIndexChanged

         Dim f As New Master
         f.Owner = Me
を削除

これでどんな動きになるでしょう?
投稿者 かつ  (社会人) 投稿日時 2018/7/5 13:36:58
shu様の回答のようにすると動作する事ができました。

Private f As Master
から
Dim f As New Master
とすればいい事がわかりました。
ありがとうございました。