Форма Windows закрывается автоматически, когда родительское окно получает фокус - PullRequest
0 голосов
/ 24 января 2012

VB Windows Form Application. Я разрабатываю приложение, часть программы которого связана с настройками конфигурации, позволяя пользователю вводить элементы конфигурации.При щелчке пункта меню для меню конфигурации в главной форме открывается меню.Это нормально, но основная форма не должна снова становиться активной, пока не закроется меню конфигурации.Это не происходит прямо сейчас, и основная форма просто выходит на передний план, а форма конфигурации переходит в фоновый режим ... Я понимаю, что кодирование события в дочерней форме для обработки этого не будет работать, потому что дочернее окно теряет контроль, а главноеформа получает контроль ... Я думал о кодировании функции в основной форме следующим образом, но это не кажется логичным, потому что мне нужно было бы добавить к ней для каждой формы и сделать проверку, чтобы убедиться, что ребенок действительно открыт, прежде чем пытаться закрыть ее..

 Private Sub Form1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.GotFocus
    MailSettingsWindow.Close()
    RentalSettingsWindow.Close()

End Sub

Я покончил с вышеприведенной подпрограммой и использовал приведенный ниже код в соответствии с рекомендацией использования showdialog, которая работает так же, как я искал.

   Private Sub MailingAndEmailSettingsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MailingAndEmailSettingsToolStripMenuItem.Click
    Dim MailConfig As New MailSettingsWindow()
    MailSettingsWindow.Showdialog()
End Sub

1 Ответ

2 голосов
/ 24 января 2012

Я покончил с вышеприведенной подпрограммой и использовал приведенный ниже код в соответствии с рекомендацией использования ShowDialog, которая работает так же, как я искал.

Мой код выглядит следующим образом:

Private Sub MailingAndEmailSettingsMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles MailingAndEmailSettingsMenuItem.Click
    Dim MailConfig As New MailSettingsWindow()
    MailSettingsWindow.ShowDialog()
End Sub 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...