Как активировать форму при нажатии в любом месте формы?

Приложение MY C# работало нормально и всегда оставалось на высоте, когда его об этом просили. Я сталкиваюсь и хочу:

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

Что мне нужно установить или реализовать для этого?


person Tvd    schedule 22.06.2011    source источник
comment
У меня нет этой проблемы. Создайте новый простой проект и сравните с вашим приложением. Или дайте нам более подробную информацию   -  person Saint    schedule 22.06.2011
comment
Я создал другой проект, в котором ничего нет в форме, и попробовал ту же ситуацию. И при щелчке в любом месте этой формы он выходит на передний план. Какие подробности нужно расскажите, поделюсь - я просто не понимаю, что сюда ставить, так как приложение огромное. Но опубликую все детали, которые вам нужны - просто дайте мне некоторое представление.   -  person Tvd    schedule 22.06.2011


Ответы (3)


Попробуйте сделать это, в событии Form1_MousClick поместите этот код

bool top = this.TopMost;
this.TopMost = true;
this.TopMost = top;
person Rosmarine Popcorn    schedule 22.06.2011
comment
TopMost устанавливается только по умолчанию, т.е. False. Я добавил событие MouseClick и добавил код выше this.TopMost = True; Не работает. Пробовал с помощью this.BringToFront(). Также добавлен MessageBox, но он никогда не отображается только - поэтому MouseClick не запускается и не ловится !! Хм. - person Tvd; 22.06.2011
comment
Попробуйте скрыть форму и показать ее снова или свернуть и развернуть ее. - person Rosmarine Popcorn; 22.06.2011
comment
Потому что у вас есть лучшее решение?! - person Rosmarine Popcorn; 19.07.2011

Ничего, если вы щелкнете в любом месте окна, оно получит фокус и станет самым верхним окном, если только другое окно не установлено «Всегда сверху».

person Kieren Johnstone    schedule 22.06.2011
comment
Проводник Windows и мое приложение открыты и видны, но Проводник Win перекрывает половину экрана моего приложения. Win Exp имеет фокус. Я нажимаю на форму моего приложения (посередине), фокус с win exp теряется. При нажатии компонентов TAB в моем приложении не фокусируется (поэтому, я думаю, у него нет фокуса). Когда я нажимаю на строку заголовка своего приложения, оно появляется сверху и имеет полный фокус. СЕЙЧАС, когда я нажимаю на свое приложение (в середине формы, где нет компонентов), фокус от win exp теряется, но мой также не полностью активирован. Как мне активировать его и вывести на передний план, например, нажав на заголовок, это происходит. - person Tvd; 22.06.2011
comment
Хм, приведенный выше сценарий — это сценарий, когда вы нажимаете на место, где нет компонентов. Но если я нажму на компоненты своего приложения, такие как изображение, метка, коробка и т. д., то он будет действовать правильно, как нажатие строки заголовка. А вот при нажатии в месте, где нет компонентов, реагирует иначе. Как обрабатывать те места, где нет компонентов, и пользователь щелкает там, а приложение выходит на первое место? - person Tvd; 22.06.2011
comment
Либо вы написали какой-то код, чтобы явно остановить его появление на экране, либо вы используете компонент или библиотеку, которые делают это, либо в указанном компоненте или библиотеке есть ошибка. Windows ведет себя не так, как вы описываете. - person Kieren Johnstone; 22.06.2011
comment
согласился, что должна быть какая-то ошибка или, может быть, настройка где-то, что делает ut ac таким. Но явно не остановили его появление. Почему он не появляется на переднем плане при нажатии на место, где их нет компонентов, а если щелкнуть на компоненте, он появляется. Я использую только стандартные компоненты. Я не думаю, что это проблема какого-либо компонента или библиотеки. Какие возможные настройки могли повлиять на такой результат? Если щелкнуть место, где находится компонент (например, GroupBox, PictureBox и т. д.), он окажется сверху; но там, где ничего не размещено, оно не выходит на первое место. У вас есть идеи о каких-либо настройках? - person Tvd; 22.06.2011

Проблема заключалась в переопределении WndProc. Одно ненужное утверждение было удалено, и все было решено. Спасибо всем за ваши усилия.

person Tvd    schedule 18.07.2011