Чтение онлайн

на главную - закладки

Жанры

Программирование мобильных устройств на платформе .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.00
рейтинг книги
РАЗОБЛАЧЕНИЕ МАГИИ, или Настольная книга шарлатана

Кодекс Охотника. Книга XXXVIII

Винокуров Юрий
38. Кодекс Охотника
Фантастика:
фэнтези
боевая фантастика
попаданцы
юмористическое фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXXVIII

На границе империй. Том 10. Часть 5

INDIGO
23. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 5

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4

Последняя

Гусейнова Ольга Вадимовна
1. Последняя
Фантастика:
фэнтези
5.00
рейтинг книги
Последняя

Кодекс Охотника. Книга XXXV

Винокуров Юрий
35. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXV

Изыскатель

Назимов Константин Геннадьевич
5. Травник
Фантастика:
фэнтези
7.00
рейтинг книги
Изыскатель

Украсть у президента

Гриньков Владимир Васильевич
Детективы:
триллеры
5.00
рейтинг книги
Украсть у президента

Печать Пожирателя

Соломенный Илья
4. Пожиратель
Фантастика:
аниме
сказочная фантастика
фэнтези
попаданцы
5.00
рейтинг книги
Печать Пожирателя

Меткий стрелок

Вязовский Алексей
1. Меткий стрелок
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Меткий стрелок

Аспирант

Поселягин Владимир Геннадьевич
3. Рунный маг
Фантастика:
боевая фантастика
4.50
рейтинг книги
Аспирант

Законы Рода. Том 9

Мельник Андрей
9. Граф Берестьев
Фантастика:
городское фэнтези
попаданцы
аниме
дорама
фэнтези
фантастика: прочее
5.00
рейтинг книги
Законы Рода. Том 9

Приказано выжить!

Малыгин Владимир
1. Другая Русь
Фантастика:
боевая фантастика
попаданцы
альтернативная история
7.09
рейтинг книги
Приказано выжить!

Шайтан Иван 4

Тен Эдуард
4. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
8.00
рейтинг книги
Шайтан Иван 4