Я решаюсь на то, чтобы сделать приложение VB.NET немного лучше использовать, сделав некоторые формы немодальными.
Я думаю, что я понял, как использовать dlg.Show() и dlg.Hide() вместо вызова dlg.ShowDialog(). У меня есть экземпляр моего немодального диалога в моей основной форме приложения:
Public theModelessDialog As New dlgModeless
Чтобы запустить немодальное диалоговое окно, я вызываю
theModelessDialog.Show()
и внутри обработчиков кнопок OK и Cancel в dlgModeless
У меня есть
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Hide()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Hide()
End Sub
и, похоже, работает нормально.
Кнопка "X" в правом верхнем углу меня. Когда я закрываю форму с помощью этой кнопки, попробуйте снова открыть форму, я получаю
ObjectDisposedException не было обработано. Не удается получить доступ к расположенному объекту.
Мне кажется, что я больше всего нахожусь там, но я не могу понять, как это сделать:
- Скрыть эту кнопку "X"
- Поймайте событие, чтобы я не выбрал объект (просто обработайте его, как будто я ударил Cancel)
Любые идеи?
Класс этого диалога System.Windows.Forms.Form
.