GotFocus () и дети MDI - PullRequest
       11

GotFocus () и дети MDI

0 голосов
/ 14 июля 2010

У меня есть форма MDI с 3 дочерними окнами.

  • MDI начинается пустым.

  • Каждый дочерний элемент может быть открыт один раз изmenu.

Когда я открываю несколько окон и закрываю верхнее, фокус должен получиться, но событие новой активной дочерней формы GotFocus () не запускается.

Private Sub frmMain_gotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.GotFocus
...
End Sub

Ответы [ 2 ]

2 голосов
/ 14 июля 2010

Неудачное предположение. Либо Enter, либо событие Activated решит вашу проблему.

При программировании в Windows Forms вы обычно хотите избегать событий GotFocus и LostFocus. Они часто скрыты в конструкторе, но не последовательно. Соответственно, события Enter и Leave являются их заменами, они генерируются из логического состояния пользовательского интерфейса вместо необработанных сообщений Windows. Имеет значение при использовании Validating и MDI.

Активировано является «естественным», поскольку фактический фокус перемещается на дочерний элемент управления этой формы.

0 голосов
/ 14 июля 2010

Когда вы создаете дочерние формы MDI из родительского MDI, вы должны подписать родительскую форму MDI на событие GotFocus дочерней формы MDI.Чтобы при возникновении каких-либо событий фокуса на вашем MDI Child ваш родительский MDI получал уведомление.

Когда форма закрывается / открывается, автоматически выбирается следующая дочерняя форма в Z-порядке MDI, и еслиПовторно подписавшись на событие, ваш родительский MDI может действовать соответствующим образом и отображать ваши данные.

...