Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Разработка Windows Forms > Как запретить сворачивание формы? |
Автор: Riccon 30.4.2007, 11:47 |
Добрового дня, господа. У меня такая задача. На десктопе должно висеть окошко для показывания всякой шизы(рекламной). Причём висеть оно должно постоянно и не мешая работе других приложений. Что-то вроде часов у висты. Так вот вопрос в том, как сделать так, чтоб это окно невозможно было свернуть? |
Автор: Retro 30.4.2007, 12:28 |
Убрать минимайз(или вообще весь бордер), сделать прозрачным(как опция) и не отображать на панели. Закрывать по кнопке. |
Автор: Riccon 30.4.2007, 12:47 | ||
Спаисбо. Только поясните подробнее про это:
Мне-то еще нужно, чтоб по Win+D окно не сворачивалось. |
Автор: Riccon 1.5.2007, 11:35 |
Не, TopMost не подходит. Эта панелька должна быть как бы элементом десктопа, подобно иконкам. Её могут перекрывать другие окна. Только сворачиваться не должна. |
Автор: archeg 1.5.2007, 11:38 | ||||
Разварачивай ее в таймере ![]() Добавлено через 13 минут и 7 секунд Может быть это поможет:
Написал быстро, может можно лучше |
Автор: Riccon 2.5.2007, 09:22 | ||
В принципе - выход, учитывая, что таймер там будет работать постоянно. Поставил бы плюс за оригинальность решения, но 100 постов нету. По этому, просто, спасибо ![]() Хотя, наверняка, предпочтительнее отловить нужное событие. А какие события возникают у формы при нажатии Win+D или Win+M я не представляю как узнать.:( |
Автор: Naum 2.5.2007, 12:47 |
Можно по событию SizeChanged проверять, если WindowState == Minimize, тогда разворачивать. А еще где-то на форуме уже обсуждалось как можно перехватывать нажатие клавиш, и обрабатывать их самому. |
Автор: encaps 13.7.2007, 21:34 |
ну так как же отменить сворачивание формы? |
Автор: mr.DUDA 13.7.2007, 23:00 |
encaps, неужто из вышеприведённых постов неясно как это сделать ? |
Автор: NURMS 14.7.2007, 22:52 |
Я что-то не понял. А просто в опциях поставить MinimizeBox = False yне пойдёт? |
Автор: Retro 14.7.2007, 23:31 | ||
Вопрос, ИМХО, стоял больше о горячих клавишах - win+d. Если TopMost не подходит то archeg уже ответил, разворачивать по таймеру. |
Автор: Atiskara 9.8.2010, 07:28 | ||
Спасибо за реализованный таймер. Я его использовала для всяких разных вещей, но вот по прямому назначению не удалось. При присваивании нового значения свойству WindowState нормализация окна не происходит((. Кто может подсказать в чем причина? Кстати да, приложение разрабатываю на VS2010 WPF. |
Автор: IGV 13.8.2010, 18:33 |
эм....ну как бы вам сказать...с точки зрения пользователя, я бы вас убил за такие вещи, а с точки зрения программиста могу посоветовать почитать здесь насчет сабжа: http://www.codeproject.com/KB/dotnet/DesktopWidget.aspx а так для этого нужно дергать WinAPI. |
Автор: Planeworld 5.12.2010, 16:11 |
Перехватываем команду, и подменяем её такой же но без handle-а вашего окна. как уже писалось выше winapi имхо самое стабильное и не юзерфрендли ![]() |