Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №1 ТП.doc
Скачиваний:
6
Добавлен:
26.08.2019
Размер:
558.08 Кб
Скачать
      1. Блокирование кнопки

Для того чтобы заблокировать кнопку, установите значение свойства Enabled равным true. Заблокированная кнопка отображается в форме, однако не реагирует на мышь и клавиатуру, а также не создает событий.

При необходимости приложение может скрыть кнопку или другой элемент управления, установив значение свойства Visible равным false. Скрытый элемент управления не отображается в форме и не создает событий.

      1. Изображение на поверхности кнопки

Можно значительно улучшить внешний вид кнопки, расположив на ее поверхности графическое изображение.

        1. Выбор файла изображения

Чтобы поместить на поверхность кнопки графическое изображение, необходимо отредактировать свойство Image.

Программно изображение на поверхности кнопки задается так:

buttonGreen.Image =  ((System.Drawing.Bitmap)(resources.GetObject("buttonGreen.Image")));

Здесь изображение извлекается из ресурсов приложения с помощью метода resources.GetObject, а затем, после приведения типа к System.Drawing.Bitmap, записывается в свойство Image.

        1. Выравнивание изображения

Редактируя свойство ImageAlign, Вы можете изменить выравнивание изображения, добавленного в кнопку (по умолчанию изображение центрируется в окне кнопки). Это можно делать при помощи средств Microsoft VisualStudio .NET, или программно:

buttonGreen.ImageAlign = System.Drawing.ContentAlignment.TopCenter;

Как правило, если на кнопе имеется и текст, и изображение, нужно задать соответствующее выравнивание и для текста, и для изображения. Например, можно выровнять изображение влево по центру, а текст — вправо по центру. Так же можно выровнять изображение верх по центру, а текст — вниз по центру (кнопка Зеленый на Рисунок. 6-1)

        1. Фоновое изображение для кнопки

Чтобы еще больше улучшить внешний вид кнопки, Вы можете задать для нее фоновое изображение. Оно будет использовано таким же образом, как фоновое изображение формы или Web-страницы.

Если размеры фонового изображения равны размерам окна кнопки или больше этих размеров, то оно будет показано в окне кнопки полностью или частично. В противном случае фоновое изображение будет размножено внутри окна кнопки до его полного заполнения.

Чтобы задать фоновое изображение для кнопки, отредактируйте свойство BackgroundImage. Это можно сделать во время разработки приложения или из программы:

buttonWhite.BackgroundImage = ((System.Drawing.Bitmap)   (resources.GetObject("buttonWhite.BackgroundImage")));

      1. События

Подготовим обработчик события, предназначенные для изменения цвета панели panel1 класса Panel, расположенной в правой части главного окна этого приложения. Создавая приложение, перетащите эту панель в форму из инструментальной панели Toolbox.

Каждый такой обработчик события устанавливает свойство panel1.BackColor, записывая в него тот или иной цвет:

private void buttonRed_Click(object sender, System.EventArgs e) {   panel1.BackColor = System.Drawing.Color.Red; } … private void buttonWhite_Click(object sender, System.EventArgs e) {   panel1.BackColor = System.Drawing.Color.White; }

Цвет задается как статическая константа класса System.Drawing.Color.

Если в окне проектирования формы щелкнуть кнопку дважды, для нее по умолчанию будет создан обработчик события Click. Однако кнопка, как и остальные элементы управления, создает множество других событий. Чтобы увидеть список событий, создаваемых кнопкой, выделите ее левой клавишей мыши в окне проектирования формы, а затем откройте вкладку событий, расположенную в окне Properties (Рисунок. 6-2).

Рисунок. 6-2. Вкладка событий для кнопки

Как видите, для обработки события Click здесь назначен обработчик button_Red_Click.

Все события, перечисленные на вкладке событий, разделены на группы.

Группа Action (действие) включает в себя только событие .

Группы Mouse (события, связанные с мышью), то в ней имеется целых шесть событий. Они создаются, когда пользователь нажимает кнопку мыши в окне кнопки (событие MouseDown), располагает курсор мыши над поверхностью окна кнопки (MouseEnter) или убирает курсор мыши из этого окна (MouseLeave) и т.д. Выделяя по очереди левой клавишей мыши названия событий, Вы можете прочитать в нижней части вкладки краткое описание условий, при которых это событие возникает.

На вкладке событий Вы можете назначить обработчики для любых событий.

Обработчик button_Red_MouseEnter получит управление, когда курсор мыши входит в область окна кнопки, а обработчик button_Red_MouseLeave — когда курсор мыши выходит из этой области.

Эти обработчики событий раскрашивают панель panel1 в цвет, соответствующий той кнопке, над которой в данный момент находится курсор мыши. Когда курсор мыши покидает область окна кнопки, цвет панели panel1 становится светло-серым.

Прежде всего, добавьте в класс Form1 поле  oldColor, предназначенное для хранения исходного цвета фона кнопки:

Color oldColor;

Далее добавьте исходный текст обработчика событий button_Red_MouseEnter, подключенного ко всем кнопкам нашего приложения:

private void button_Red_MouseEnter (object sender, System.EventArgs e) {   Button btn = (Button)sender;   oldColor = btn.BackColor;   btn.BackColor = Color.Red;   switch(btn.Text)   {      case "Красный":      {        panel1.BackColor = System.Drawing.Color.Red;        break;      }      …  }}

Получив управление, наш обработчик событий получает идентификатор кнопки, вызвавшей событие, и сохраняет его в переменной btn. Затем обработчик сохраняет в поле oldColor текущий цвет фона кнопки, получая его из свойства btn.BackColor, а затем раскрашивает фон кнопки в красный цвет:

Button btn = (Button)sender; oldColor = btn.BackColor; btn.BackColor = Color.Red;

Далее обработчик события получает текст надписи на кнопке btn.Text и определяет, какая кнопка вызвала появление события:

switch(btn.Text) {   case "Красный":   {     panel1.BackColor = System.Drawing.Color.Red;     break;  }   … }

Далее обработчик событий изменяет соответствующим образом цвет панели panel1.

Когда мышь покидает окно наших кнопок, управление получает обработчик событий buttonsLeave:

private void button_Red_MouseLeave (object sender, System.EventArgs e) {   Button btn = (Button)sender;   btn.BackColor = oldColor;   panel1.BackColor = System.Drawing.Color.LightGray; }

Его задача — восстановление исходного цвета фона кнопки, окно которой покинул курсор мыши, а также раскрашивание панели panel1 в светло-серый цвет.

Создавая подобные обработчики событий, вы можете динамически изменять графическое изображение, расположенное в окне кнопки. Фоновое графическое изображение, текст надписи или шрифтовое оформление этого текста. Словом, здесь все ограничивается только Вашей фантазией.

Обработка событий MouseDown и MouseUp позволяет задать, например, произвольный вид кнопки в нажатом и отжатом состоянии.