2014-10-15 2 views
0

я в настоящее время работаю над всплывающей программой в МОФ, которая получает скрытый либо this.hide(); или MainWindow1.WindowState = WindowState.Hidden и «всплывает» с помощью MainWindow1.WindowState = WindowState.Normal;Избегайте фокусировки на MainWindow при показе его

Моей проблемы в том, что я не хочу Mainwindow, чтобы получить любой фокус клавиатуры. Итак, всякий раз, когда программа имеет фокус клавиатуры, когда всплывающее окно отображается, оно должно содержать его.

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

Edit: Я не пытаюсь держать фокус в любых моих собственных программных окнах, но и в других окна программы (например, Outlook)

Edit2: Вот a screenshot из моей программы, просто чтобы очистить неясности о использование класса PopUp.

Редактирование3: Может быть, можно настроить фокус клавиатуры обратно на программу, которая была сфокусирована раньше?

+0

Возможный дубликат [Wpf предотвратить всплывающее окно от удаления фокуса текстового поля] (http://stackoverflow.com/questions/25929133/wpf-prevent-popup-window-from-removing-the-focus-of- a-textbox) –

+0

У меня такое чувство, это не должно быть стандартным окном. Может быть, ['Popup'] (http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.popup.aspx) будет делать? – Sinatr

+0

@Novitchi Нет, это не так, потому что я не пытаюсь сосредоточиться в своей собственной программе, а во внешних. – Marv

ответ

0

Решение (как кажется) очень легко, все, что вам нужно сделать, это:

MainWindow1.Showactivated = false; 
this.Show(); 

Это покажет MainWindow, пока основное внимание будет сосредоточено на любой программе, имеющей фокус до появления MainWindow.

0

так люди не вводить целые электронные письма в

Я рекомендовал бы установить основные элементы управления страниц или их контейнер, Enabled свойство false, когда всплывающий работает и обратное, когда это не так. Следовательно, фокусировка пользователя на всплывающее окно до его подтверждения.

+0

Это, к сожалению, не мешает окну получать фокус при появлении. – Marv

+0

@Marv True. Я обновил эту должность, чтобы отразить то, чего бы избежать. – OmegaMan

+0

Да, это правильно, но это было просто для того, чтобы проиллюстрировать, какую проблему я хочу решить. Я имел в виду, что они не набирают почту в моем Окне случайно вместо самой программы электронной почты, потому что она просто выскочила, не заметив ее. – Marv

0

Если цель состоит в том, чтобы показать форму уведомления, убедитесь, что компонент: Windows Forms Toolkit NotificationForm

+0

Нет, я просто хочу, чтобы мой Mainwindow был всплывающим, не имея на него фокуса клавиатуры. – Marv

Смежные вопросы