Программирование >>  Автоматически обновляемые приложения 

1 ... 34 35 36 [ 37 ] 38 39 40 ... 170


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.



1 ... 34 35 36 [ 37 ] 38 39 40 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика