Передача данных между формами VB.NET - PullRequest
2 голосов
/ 25 января 2011

У меня есть форма, в которой есть кнопка, при нажатии на которую появляется диалоговая форма.В этой диалоговой форме пользователь должен выбрать некоторые данные, и когда пользователь закончит, они нажимают кнопку OK.После того, как они нажмут кнопку «ОК», необходимо вернуть целое число обратно в предыдущую форму.

Я создал диалоговую форму и попытался вызвать ее с помощью кода ниже:

Dim intResult as Integer = frmData.ShowDialog()

Debug.Writeline(intResult)

Однако онКажется, я могу только вернуть DialogResults (Abort, Cancel, Ignore ...)

Мне было интересно, как я могу это сделать, не создавая публичную переменную и не сохраняя результат там.

Ответы [ 3 ]

4 голосов
/ 25 января 2011

Создайте свойство в диалоге, которое будет возвращать значение.

If frmData.ShowDialog() Is Not DialogResult.Cancel
   Dim value as integer = frmData.MyProperty 
   ...
Endif
2 голосов
/ 25 января 2011

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

1 голос
/ 25 января 2011

Создайте Cutom Dialog для вашего проекта (добавьте / новый элемент / Windows Forms / Dialog).Затем создайте из него экземпляр, вызовите showDialog и проверьте, является ли его DialogResult Windows.Forms.DialogResult.Ok.Вы можете получить доступ ко всем его элементам управления, например:

Dim d As New Dialog1
Dim result As DialogResult = d.ShowDialog(Me)
If result = Windows.Forms.DialogResult.OK Then
    Dim selectedText As String = d.ComboBox1.SelectedText
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...