2010-01-18 3 views
4

У меня есть полноэкранное окно с атрибутом Topmost, равным true. Всякий раз, когда приложение меняет свойство WindowState, мое окно автоматически минимизируется, даже если оно имеет активный фокус. Например, приведенный ниже код иллюстрирует проблему. Через 3 секунды после того, как окно деактивировано, оно изменяется с Минимизировано на Нормальное, сводя к минимуму другое полноэкранное приложение.Как я могу запретить другим приложениям красть фокус?

// Topmost = false 
private void Form1_Deactivate(object sender, EventArgs e) 
{ 
    System.Threading.Thread.Sleep(3000); 
    this.WindowState = FormWindowState.Normal; 
} 

Есть ли способ сохранить свойство WindowState в полноэкранном окне в таком случае? Я хочу, чтобы пользователь решил минимизировать полноэкранное приложение, поэтому я хочу остановить другие программы от кражи фокуса.

+6

Как пользователь, я действительно не хочу делать это приложение. FWIW. –

+2

Пожалуйста, не украдите мой фокус: http://www.codinghorror.com/blog/archives/001011.html – SwDevMan81

+5

И следующий вопрос StackOverflow будет «как мне сфокусироваться даже из окна, которое активно мешает мне это делать? ?» Вы действительно хотите начать гонку вооружений? –

ответ

0

Если это приложение для киоска, и вы являетесь единственной программой, запущенной на компьютере, тогда хорошо. В противном случае это очень плохая идея, и поэтому нет документального способа сделать это. Как Raymund Чен говорит, что это такой вопрос, следует придерживаться с мысленным экспериментом «что если две программ сделали это?»:

http://blogs.msdn.com/oldnewthing/archive/2005/06/07/426294.aspx

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