Как получить значения из диалогов в VB.NET: методы и примеры

Чтобы получить значения из диалога в VB.NET, вы можете использовать различные методы в зависимости от типа диалога и того, как он реализован в вашем приложении. Вот некоторые распространенные подходы:

  1. Использование DialogResult. Если вы используете стандартное диалоговое окно, такое как MessageBox или OpenFileDialog, вы можете использовать свойство DialogResult для получения выбора пользователя. Например:
Dim result As DialogResult = MessageBox.Show("Are you sure?", "Confirmation", MessageBoxButtons.YesNo)
If result = DialogResult.Yes Then
    ' User clicked Yes
ElseIf result = DialogResult.No Then
    ' User clicked No
End If
  1. Пользовательский диалог со свойствами. Если вы создали настраиваемую диалоговую форму, вы можете определить общедоступные свойства, чтобы предоставлять значения, введенные пользователем. Например:

В диалоговой форме:

Public Property UserName As String
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
    UserName = txtUserName.Text
    DialogResult = DialogResult.OK
    Close()
End Sub

В вызывающем коде:

Dim dlg As New CustomDialogForm()
If dlg.ShowDialog() = DialogResult.OK Then
    Dim userName As String = dlg.UserName
    ' Use the entered username
End If
  1. Передача значений через обработчики событий. Если ваш диалог предполагает взаимодействие с пользователем и вы хотите передать значения обратно, вы можете определить собственные события в форме диалога и обрабатывать их в вызывающем коде. Например:

В диалоговой форме:

Public Event ValueSelected As EventHandler(Of ValueSelectedEventArgs)
Private Sub btnSelect_Click(sender As Object, e As EventArgs) Handles btnSelect.Click
    Dim selectedValue As String = lstValues.SelectedItem.ToString()
    RaiseEvent ValueSelected(Me, New ValueSelectedEventArgs(selectedValue))
    Close()
End Sub

В вызывающем коде:

Dim dlg As New CustomDialogForm()
AddHandler dlg.ValueSelected, AddressOf Dialog_ValueSelected
dlg.ShowDialog()
Private Sub Dialog_ValueSelected(sender As Object, e As ValueSelectedEventArgs)
    Dim selectedValue As String = e.Value
    ' Use the selected value
End Sub

Это всего лишь несколько примеров того, как можно получить значения из диалогового окна в VB.NET. Выбор подхода будет зависеть от конкретных требований вашего приложения.