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

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

Жанры

Программирование мобильных устройств на платформе .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);

 //-------------------------------

 //Присоединить обработчик событий

Поделиться:
Популярные книги

Возлюби болезнь свою

Синельников Валерий Владимирович
Научно-образовательная:
психология
7.71
рейтинг книги
Возлюби болезнь свою

Тринадцатый XI

NikL
11. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Тринадцатый XI

Хроники Тириса. Книга 1

Маханенко Василий Михайлович
1. Хроники Тириса
Фантастика:
боевая фантастика
космическая фантастика
фантастика: прочее
6.00
рейтинг книги
Хроники Тириса. Книга 1

Дважды одаренный. Том IV

Тарс Элиан
4. Дважды одаренный
Фантастика:
городское фэнтези
альтернативная история
аниме
7.00
рейтинг книги
Дважды одаренный. Том IV

Я уже барон

Дрейк Сириус
2. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я уже барон

Эволюционер из трущоб. Том 9

Панарин Антон
9. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 9

Паладин из прошлого тысячелетия

Еслер Андрей
1. Соприкосновение миров
Фантастика:
боевая фантастика
попаданцы
6.25
рейтинг книги
Паладин из прошлого тысячелетия

Свет горизонта

BlackRaven
1. Свет горизонта
Фантастика:
фэнтези
6.00
рейтинг книги
Свет горизонта

Дважды одаренный. Том VI

Тарс Элиан
6. Дважды одаренный
Фантастика:
аниме
альтернативная история
фэнтези
фантастика: прочее
5.00
рейтинг книги
Дважды одаренный. Том VI

Память льда

Эриксон Стивен
3. «Малазанская империя»
Фантастика:
фэнтези
6.00
рейтинг книги
Память льда

Первый удар (сборник)

Уланов Андрей Андреевич
Фантастика:
научная фантастика
5.71
рейтинг книги
Первый удар (сборник)

Артефактор. Возвращение блудного императора

Седых Александр Иванович
2. Артефактор
Фантастика:
фэнтези
боевая фантастика
4.33
рейтинг книги
Артефактор. Возвращение блудного императора

Воин

Бубела Олег Николаевич
2. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.25
рейтинг книги
Воин

Сирота

Шмаков Алексей Семенович
1. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Сирота