Показать новое окно WinForms не сфокусировано - PullRequest
4 голосов
/ 05 ноября 2008

Я создаю и показываю новое окно WinForms поверх главного окна. Как мне добиться, чтобы оригинал (главное окно) удерживал фокус? Возврат фокуса после отображения нового окна не решает мою проблему, потому что мне нужно предотвратить мерцание строки заголовка главного окна. Новое окно должно оставаться поверх главного окна, поэтому я должен установить topMost = true. Тем не менее, это не имеет значения для проблемы, я думаю.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 05 ноября 2008

Настройка фокуса после показа новой формы работает нормально. Моя панель задач не мерцает.

private void button1_Click(object sender, EventArgs e)
{
     Form2 f2 = new Form2();
     f2.TopMost = true;
     f2.Show();
     this.Focus();            
}

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

0 голосов
/ 05 ноября 2008

Если вы пытаетесь достичь чего-то похожего на «супер» всплывающие подсказки в Office 2007, вам может быть лучше иметь стороннюю библиотеку, которая уже делает это. Другим вариантом, вероятно, будет создание окна как NativeWindow и использование вызовов взаимодействия для взаимодействия с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...