Visual C# для чайников. Урок 11. Работа с формами (Form, EventArgs, CloseReason) |
Автор megabax | |||||
02.03.2012 г. | |||||
Visual C# для чайников. Урок 11. Работа с формами (Form, EventArgs, CloseReason)Исходники к уроку можно скачать здесь.
Сегодня мы научимся управлять формами (окнами Windows). И так, создаем новый проект. Для начала добавим в проект две новых формы. Для этого в обозревателе решений щелкнем правой кнопкой мыши на дереве проектов*: В открывшемся меню выберем "Добавить" -> "Форма Windows..."*: Им автоматически будут присвоены имена form2 и form3. Если хотите, можете переименовать их*: Далее, в начало описания класса основной формы (Form1, если вы ее не переименовывали), добавьте описание поле, совпадающих с именами добавленных форм*: Добавьте к основной форме две кнопочки*: У главной формы сделайте заголовок "Главное окно" (свойство text). Значение свойства MaximizeBox сделайте false - что бы заблокировать кнопочку разворота окна на весь экран. Свойство FormBorderStyle сделайте FixedSingle - это нужно для того, что бы нельзя было менять размер окна. У следующей формы (form2) сделаем заголовок "Подчиненное окно", свойству StartPosition присвоим Manual, что бы мы могли явно задать начальное положение окна. Ниже мы сделаем это в программном коде, а сейчас зададим у второй формы свойство ShowTaskBar в false - это для того, что бы оно не отображалось в TaskBar-е*: У формы 3 сделаем заголовок "Диалоговое окно", MaximizeBox = false, MinimizeBox = false, FormBorderStyle= FixedDialog, StartPosition=Center, ShowInTaskBar=false Теперь займемся программированием. Начнем с конструктора главной формы, туда мы поместим код добавления подчиненных форм (если вы переименовали формы, то вместо form2 и form3 ставьте свои имена):
Создадим следующие обработчики событий у формы 1 и кнопочек: у формы Shown, у кнопочек Click:
Как я и обещал, в обработчике Shown главной формы мы явно задаем местоположение подчиненной формы. Задает смещением относительно левого нижнего угла начального положения главной формы*: Если в обработчике мы поменяем координаты:
то и начальное положение подчиненной формы будет другим*: Следует заметить, что форма "Подчиненное окно" отображается у нас в обычном режиме, а "Диалоговое окно" в модальном, тоесть, пока оно не закрыто, мы не можем получить доступ к любой другой форме программы (даже к главной форме), пока не закроем его. И еще немного по программируем form2, что бы устранить недочет: после закрытия формы 2 попытка ее повторного открытия приводит к глюку. Все дело в том, что закрыть окно, мы удаляем его из памяти. Устранит проблему следующий обработчик FormClosing формы 2:
В этом обработчике мы проверяем, что послужило причиной закрытия формы - если это пользователь нажал на кнопочку закрытия, то вместо уничтожения формы делаем ее невидимой. В следующий раз, когда мы открываем форму, она просто меняет свой статус с невидимой на видимую. Исходники к уроку можно скачать здесь. Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями программного продукта "Microsoft Visual Studio 2010 Professional", авторское право на который принадлежит корпорации Microsoft..
(С) Шуравин Александр
|
|||||
Последнее обновление ( 12.02.2014 г. ) |