С# MDI Parent Получите фокус, щелкнув фон MDI Parent

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

Я пытался использовать событие щелчка мыши, событие щелчка, событие нажатия клавиши и т. д., чтобы вручную установить фокус при нажатии на родительский элемент MDI, но ни одно из этих событий не срабатывает. Есть ли ЛЮБОЙ способ установить фокус на родителя MDI, когда вы нажимаете на фон формы?


person Watson    schedule 14.10.2009    source источник


Ответы (2)


Этот фон является отдельным элементом управления, попробуйте найти его в MainForm.Controls и назначить ему событие щелчка.

person Henk Holterman    schedule 14.10.2009
comment
Кстати, это был потрясающий ответ. Я никогда не говорил спасибо. - person Watson; 18.10.2011

Вы можете посмотреть на Win32 WM_MDIACTIVATE сообщение. Теперь, когда мы обсудили возможное решение, может начаться реальный вопрос:

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

person csharptest.net    schedule 14.10.2009
comment
В основном я использую Janusys UI Suite. И UIPanelManager потрясающий. Но мои пользователи жалуются, что всплывающие окна слишком липкие, вы не можете просто щелкнуть в любом месте, чтобы заставить их вернуться - где угодно, являющимся родителем MDI. Они хотят щелкнуть фон родителя MDI, чтобы автоматически скрыть всплывающие панели. Спасибо, Хенк, убей меня, я не мог понять, как установить фокус на клик, и я уже проверил и подтвердил то, что ты написал. - person Watson; 14.10.2009