Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//Запустить событие !
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if (EventButtonTurningBlue!= null) {
//Возбудить событие без передачи аргумента
EventButtonTurningBlue(this, null);
}
}
else
if (m_RectangleColor == System.Drawing.Color.Blue) m_RectangleColor = System.Drawing.Color.Red;
else m_RectangleColor = System.Drawing.Color.Black;
//-----------------------
//Освободить старую кисть
//-----------------------
m_RectangleBrush.Dispose;
//----------------------------------------------------------------
//Создать новую кисть, которую мы собираемся использовать для фона
//----------------------------------------------------------------
m_RectangleBrush = new System.Drawing.SolidBrush(m_RectangleColor);
//------------------------------------------------------------
//Сообщить операционной системе, что наш элемент управления
//должен быть перерисован, как только представится возможность
//------------------------------------------------------------
this.Invalidate;
}
//----------------------------------------------------------------
//Ради интереса подсчитаем, сколько раз осуществлялась перерисовка
//----------------------------------------------------------------
int m_paintCount;
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) {
//--------------------------------------------
//ВАЖНО: Вызвать базовый класс и позволить ему
//выполнить работу по рисованию
//--------------------------------------------
base.OnPaint(e);
//Увеличить на единицу значение счетчика вызовов
m_paintCount = m_paintCount + 1;
//-------------------------------------------------------------------
//Важно:
//Вместо того чтобы создавать объект Graphics, мы получаем его
//на время данного вызова. Это означает, что освобождать память путем
//вызова метода .Dispose объекта - не наша забота
//-------------------------------------------------------------------
System.Drawing.Graphics myGfx;
myGfx = e.Graphics;
//Нарисовать прямоугольник
myGfx.FillRectangle(m_RectangleBrush, 0, 0, this.Width,this.Height);
//Нарисовать текст
myGfx.DrawString("Button! Paint: " + m_paintCount.ToString, this.Parent.Font, m_TextBrush, 0, 0);
} //конец функции
} //конец класса
Листинг 11.10. Код, который должен быть помещен в форму для создания экземпляра пользовательского элемента управления
//--------------------------------------------------------------
//Этот код будет подключен в качестве нашего обработчика событий
//--------------------------------------------------------------
private void CallWhenButtonTurningBlue(object sender, System.EventArgs e) {
System.Windows.Forms.MessageBox.Show("Button is about to turn blue!");
}
//Наша новая кнопка
myButton m_newControl;
//----------------------------------------------
//Эта функция подключается для обработки событий
//щелчка на кнопке Button1
//----------------------------------------------
private void button1_Click(object sender, System.EventArgs e) {
//----------------------------------------------
//Для простоты мы допускаем существование только
//одного экземпляра элемента управления.
//----------------------------------------------
if (m_newControl != null) {
return;
}
//Создать экземпляр нашей кнопки
m_newControl = new myButton;
//Указать ему его местоположение внутри родительского объекта
m_newControl.Bounds = new Rectangle(10, 10, 150, 40);
//-------------------------------
//Присоединить обработчик событий
Поделиться:
Популярные книги
Наследие Маозари 5
5. Наследие Маозари
Фантастика:
фэнтези
юмористическое фэнтези
5.00
рейтинг книги
Убивать, чтобы жить
1. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Черный Маг Императора 23
23. Черный маг императора
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Кодекс Охотника XXXI
31. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Анти-Ксенонская Инициатива
7. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Иной. Том 5. Адская работа
5. Иной в голове
Фантастика:
боевая фантастика
городское фэнтези
технофэнтези
рпг
5.00
рейтинг книги
Вечный. Книга V
5. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Волкодав
1. Волкодав
Фантастика:
фэнтези
героическая фантастика
9.46
рейтинг книги
Администратор
14. Мое пространственное убежище
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Драчуны
Проза:
советская классическая проза
5.00
рейтинг книги
Звездная Кровь. Экзарх II
2. Экзарх
Старинная литература:
прочая старинная литература
5.00
рейтинг книги
Юнлинг
Фантастика:
героическая фантастика
космическая фантастика
попаданцы
8.35
рейтинг книги
Хозяин Стужи 2
2. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
5.75
рейтинг книги
Наемный корпус
5. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00