|
Программирование >> Автоматически обновляемые приложения
private void buttonl Click(object sender, EventArgs e) { Bee равно не закроется! this.Close(); private void button2 Click(object sender, EventArgs e) { A так закроется Application.Exit(); Итак, мы выбрали вариант cioseReason.UserCiosing, когда ОКНО формы закрывается пользователем. В этом случае мы игнорируем его действия и выдаем соответствующее сообщение. Для сравнения я поместил на форме две кнопки с разными способами завершения работы. При методе this.close также используется значение Userciosing перечисления, препятствующее закрытию окна, а при вызове метода Application.Exit программа спокойно закрывается. Сокрытие значка формы на панели задач и при нажатии комбинации клавиш <Alt>+<Tab> Если вы хотите, чтобы значок вашей программы не отображался на панели задач, то просто установите свойство формы showinTaskBar в значение false. Это можно сделать в дизайнере форм или программным способом (листинг 5.17), поместив соответствующий код в конструктор формы. I Листинг 5.17. Скрьггие значка формы на панели задач public MyFormO { ShowInTaskbar = false; MessageBox.Show( Не положено! ); е.Cancel = true; ; Листинг 5.18. Отобразить форму на весь экран public Forml() { FormBorderstyie = FormBorderStyle.None; WindowState = FormWindowState.Maximized; Как установить ограничение на минимальный и максимальный размер окна? Если вы хотите, чтобы пользователь мог менять размеры окна в определенных пределах, то используйте в этих целях свойства формы Form.MinimumSize И Form. Maximumsize. Это МОЖНО СДелатЬ В ДИЗаЙнере форм или программным способом, используя код листинга 5.19. : Листинг 5.19. Установка ограничения на размер формы MaximumSize = new Size (400, 400) MinimumSize = new Size(250, 250) 5 Зак 262 Несмотря на то, что на панели задач значок формы уже не выводится, его все равно можно увидеть при вызове окна переключения задач (task switch) с помощью комбинации клавиш <Alt>+<Tab>. Чтобы избежать появления значка и в этом окне, присвойте свойству FormBorderstyie значение SizableToolWindowI FormBorderstyie = FormBorderStyle.SizableToolWindow; Как отобразить форму на весь экран? Иногда требуется, чтобы форма занимала весь экран, закрывая в том числе и панель задач. Типичные примеры для такой задачи - создание хранителей экрана или игр в полноэкранном режиме. Решить эту проблему очень просто. Присвойте свойству формы FormBorderstyie Значение FormBorderstyie.None, а свойству WindowState ЗНачение FormWindowState.Maximized. УстанОВИТЬ требуемые свойства вы можете в дизайнере форм или программным способом, показанным в листинге 5.18. I Листинг 5.20. Отлавливаем моменты изменения состояния формы const int WM SYSCOiyiMAND = 0x0112; const int SC MINIMIZE = 0xF020; const int SC MAXIiyiIZE = 0xF030; const int SC RESTORE = 0xF120; const int WM NCLBUTTONDBLCLK = ОхООАЗ; const int HTCAPTION = 2; public string strlnfo; protected override void WndProc(ref Message msg) { bool isStateChanging = false; switch (msg.Msg) { case WM SYSCOMMAND: switch (msg.WParam.ToInt320 ) { case SC MINIMIZE: isStateChanging = true; strlnfo = Сворачиваемся ; break; case SC MAXIMIZE: strlnfo = Разворачиваемся ; isStateChanging = true; break; Как отловить момент сворачивания или разворачивания формы? Чтобы отловить момент сворачивания, разворачивания или восстановления формы, нужно перехватывать сообщение Windows wmsyscommand и анализировать параметр wParam, который содержит необходимую информацию, а именно флаги sc minimize, sc maximize и sc restore. Кроме того, необходимо следить за двойными щелчками мыши по заголовку формы, при которых форма также меняет свое состояние. В этом случае мы следим за сообщением wmnclbuttondblclk. Обратите внимание, что уведомления посылаются до изменения состояния формы, и мы имеем возможность отменить действие. Соответствующий код приведен в листинге 5.20.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |