Изменение вкладок в элементе управления вкладками не отправляет дочернему элементу сообщение - PullRequest
1 голос
/ 20 декабря 2010

В приложении C # Windows Forms, использующем Framework 2.X, нажатие на элемент управления с вкладкой не отправляет сообщение дочерним элементам управления (например, событие потерянного фокуса).Используя Microsoft Spy ++, я не вижу сообщений, отправленных моему дочернему элементу управления.Я получаю сообщения, когда нажимаю обратно на вкладку с элементом управления.

Любые идеи о том, что мне нужно сделать, чтобы мой дочерний элемент управления знал, что он не отображается после изменения вкладки.Я хотел бы, чтобы код был в контроле, а не родитель.Я предполагаю, что я пропускаю какое-то событие или регистрацию.

Заранее спасибо,

Крейг

1 Ответ

1 голос
/ 20 декабря 2010

Я предполагаю, что мне не хватает какого-то события или регистрации.

Не думаю, что вы.

Событие потерянного фокуса будетслишком рано, поскольку это происходит до того, как страница изменится.

Событие VisibleChanged дочернего элемента управления запускается только тогда, когда отображается родительская вкладка, а не когда она скрыта, а это не то, что вам нужно.*

Вы можете обрабатывать либо TabPage.VisibleChanged , либо TabControl.SelectedIndexChanged .Это, конечно, от Родителя, а не Ребенка, что тоже не то, что вы хотите.

Между прочим, я полагаю, что сообщение TCM_SETCURSEL отправляется в элемент управления при смене вкладки (опять же, не помогает с запросом «не в родительском запросе»)

...