別のフォームのテキストボックスの操作について への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 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
を削除
これでどんな動きになるでしょう?
の
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/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
私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
Private f As Master
から
Dim f As New Master
とすればいい事がわかりました。
ありがとうございました。