У меня есть простое приложение с 2 формами. Одна форма (form1) позволяет пользователю выбрать запись в ListBox. После того как выбор сделан, вторая форма (form2) должна быть обновлена данными из первой формы.
Пользователь должен иметь возможность выбрать другую запись, и вторая форма должна быть обновлена с новыми данными.
Я смог сделать это, за исключением того, что он использует Form.Show (), который воссоздает form2 каждый раз, когда пользователь выбирает новую запись в form1. Я хочу, чтобы форма 2 отображалась (когда-то открывалась), а затем обновляла отображаемые данные каждый раз, когда пользователь выбирает запись в форме 1.
Соответствующий код формы 1:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim newForm As New form2
newForm.Location = Screen.AllScreens(LBound(Screen.AllScreens)).Bounds.Location
newForm.Hide()
End Sub
Private Sub DataGridView1_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles BoatsGrid.CellMouseClick
If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then
Dim selectedRow = gridview1.Rows(e.RowIndex)
TextBox1.Text = gridview1.CurrentRow.Cells(1).Value.ToString()
Textbox2.Text = gridview1.CurrentRow.Cells(2).Value.ToString()
Textbox3.Text = gridview1.CurrentRow.Cells(0).Value.ToString()
Dim newForm As New form2
newForm.Location = Screen.AllScreens(LBound(Screen.AllScreens)).Bounds.Location
newForm.UpdateText(TextBox1.Text, Textbox2.Text)
newForm.Show()
End If
End Sub
Теперь,соответствующий код из form2:
Public Class WeightDisplay
Private Sub WeightDisplay_Load() Handles MyBase.Load
End Sub
Public Sub UpdateText(TextString1 As String, TextString2 As String)
Label1.Text = TextString1
Label2.Text = TextString2
End Sub
End Class
Я попытался использовать form2.Refresh () и form2.Update () из form2 и из form1. Я ничего не получаю.
То, что я показываю выше, просто создает больше версий формы 2, но не обновляет текущую итерацию формы 2.