Текстовое значение всплывающей формы (другой дочерней формы) не передается первой дочерней форме в родительской форме MDI - PullRequest
0 голосов
/ 07 апреля 2020

Я новичок в VB. Net и создал контейнер MDI, в котором созданы две дочерние формы "Account_Master" и "F1List". Когда я открываю форму Account_Master и нажимаю клавишу F1 на его TextBoxAccountName, он должен открыть форму F1List, которая работает нормально. После открытия списка F1List, когда я ввожу текст в TextBoxList и нажимаю кнопку 1, введенный текст должен быть передан в TextBoxAccountName Account_Master, а F1List должен закрыться. Но этого не происходит. вот мой код Пожалуйста, помогите.

'Форма Account_Master code

Private Sub Account_Master_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles MyBase.KeyDown
    If e.KeyCode = Keys.F1 Then
        Dim f As New F1List
        f.Show()
    End If
End Sub

' Форма F1List code

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Account_Master.TextBox1.Text = TextBoxList.Text
    Me.Close()
End Sub

1 Ответ

1 голос
/ 07 апреля 2020

Этот второй фрагмент кода ссылается на экземпляр по умолчанию класса формы Account_Master. Если вы изначально не отображали экземпляр по умолчанию, вы вносите изменения в форму, отличную от той, на которую вы смотрите. Например, первый фрагмент кода НЕ отображает экземпляр по умолчанию F1List, а создает его явно. Отображение экземпляра по умолчанию будет выглядеть следующим образом:

If e.KeyCode = Keys.F1 Then
    F1List.Show()
End If

Как и во втором фрагменте кода, вы получаете доступ к экземпляру по умолчанию через имя класса. Если вы хотите использовать экземпляр по умолчанию позже, вам нужно использовать экземпляр по умолчанию, чтобы начать с. Вы не можете смешивать и сочетать. Большинство опытных разработчиков не будут использовать их вообще, включая меня, но используйте их правильно, если вы собираетесь использовать их вообще.

...