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

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

Жанры

Программирование мобильных устройств на платформе .NET Compact Framework

Салмре Иво

Шрифт:

На рис. 13.8 и в листинге 13.2 представлен пример приложения, иллюстрирующего создание кнопок Button и подключение к ним обработчиков событий Click. Вы можете легко адаптировать пример для создания любых желаемых элементов управления. 

Рис. 13.8. Динамическое создание элементов управления во время выполнения

Представленный в листинге 13.2 код принадлежит форме в проекте Pocket PC. Для

создания и запуска приложения потребуется выполнить следующие действия:

1. Запустите Visual Studio .NET (2003 или более позднюю версию) и создайте приложение C# Smart Device Application.

2. Выберите в качестве целевой платформы Pocket PC. (Для вас будет автоматически создан проект, и на экране появится окно конструктора форм Pocket PC.)

3. Добавьте в форму кнопку Button и переименуйте ее в buttonCreateNewButtons.

4. Дважды щелкните на кнопке, которую вы только что добавили в окне конструктора форм. На экране отобразится окно редактора кода вместе со скелетом функции privatevoidbuttonCreateNewButtons_Click(object sender, System.EventArgs e). Введите в эту функцию приведенный ниже код.

5. Перейдя в окно редактора кода, введите оставшуюся часть приведенного ниже кода, включая те его части, которые расположены выше и ниже кода функции, который вы только что ввели.

6. Установите для свойства MinimizeBox формы значение false. Благодаря этому во время выполнения в верхней правой части формы появится кнопка OK, с помощью которой вы легко сможете закрыть форму и выйти из приложения. Эта возможность оказывается очень полезной при многократном тестировании приложения.

7. Запустите приложение. Вы должны заметить, что каждый раз, когда вы щелкаете на кнопке buttonCreateNewButtons, на форме появляется новая кнопка (как показано на рис. 13.8). Щелчки на любой из вновь созданных кнопок должны приводить к запуску приведенного ниже кода обработчика событий и отображению окна сообщений с текстом, соответствующим той кнопке, на которой был выполнен щелчок

Листинг 13.2. Динамическое создание элементов управления на форме во время выполнения

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

//Счетчик количества создаваемых кнопок

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

private int m_nextNewButtonIndex;

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

//ОБРАБОТЧИК СОБЫТИЙ: Обработчик щелчка на кнопке, которая

// имеется на нашей форме.

//

//Эта функция создает новую кнопку, присоединяет ее к нашей форме

//и подключает обработчик события щелчка для нее

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

private void buttonCreateNewButtons_Click(object sender, System.EventArgs e) {

 //Впоследствии мы начнем создавать новые кнопки, начиная

 //снизу экрана, поэтому ограничиваем их количество восемью

 if (m_nextNewButtonIndex > 8) {

return;

 }

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

 //Создать
кнопку (еще не присоединенную к нашей форме)

 //установить ее местоположение, размеры и текст

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

 const int newButtonHeight = 15;

 System.Windows.Forms.Button newButton;

 newButton = new System.Windows.Forms.Button;

 newButton.Width = 100;

 newButton.Height = newButtonHeight;

 newButton.Left = 2;

 newButton.Top = (newButtonHeight + 2) * m_nextNewButtonIndex;

 newButton.Text = "New Button " + m_nextNewButtonIndex.ToString;

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

 //Присоединить обработчик к событию щелчка на данном

 //элементе управления.

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

 newButton.Click += new System.EventHandler(this.ClickHandlerForButtons);

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

 //Присоединить эту кнопку к форме. По сути,

 //это создаст кнопку на форме!

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

 newButton.Parent = this;

 //Увеличить счетчик в соответствии с созданием очередной кнопки

 m_nextNewButtonIndex++;

}

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

//Обработчик событий, который мы динамически подключаем

//к нашим новым кнопкам

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

private void ClickHandlerForButtons(object sender, System.EventArgs e) {

 Button buttonCausingEvent;

 buttonCausingEvent = (System.Windows.Forms.Button)sender;

 //Вызвать окно сообщений, извещающее о том,

 //что мы получили событие

 System.Windows.Forms.MessageBox.Show("Click event from: \n\r'" + buttonCausingEvent.Text + "'");

}

Создание пользовательских элементов управления и перекрытие поведения существующих элементов управления

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

Старый, но крепкий 3

Крынов Макс
3. Культивация без насилия
Фантастика:
рпг
уся
фэнтези
5.00
рейтинг книги
Старый, но крепкий 3

Эмиссар

Листратов Валерий
8. Ушедший Род
Фантастика:
боевая фантастика
аниме
попаданцы
7.50
рейтинг книги
Эмиссар

Газлайтер. Том 28

Володин Григорий Григорьевич
28. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 28

Сопротивление

Осадчук Алексей Витальевич
11. Последняя жизнь
Фантастика:
аниме
фэнтези
попаданцы
7.33
рейтинг книги
Сопротивление

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

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

Чиновникъ Особых поручений

Кулаков Алексей Иванович
6. Александр Агренев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чиновникъ Особых поручений

Сталин

Радзинский Эдвард Станиславович
3. Загадки жизни и смерти
Проза:
историческая проза
7.36
рейтинг книги
Сталин

Ваше Сиятельство

Моури Эрли
1. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство

Идеальный мир для Лекаря 2

Сапфир Олег
2. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 2

На границе империй. Том 7

INDIGO
7. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
6.75
рейтинг книги
На границе империй. Том 7

Изменяющий-Механик. Компиляция. Книги 1-18

Усманов Хайдарали
Собрание сочинений
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Изменяющий-Механик. Компиляция. Книги 1-18

Я до сих пор князь. Книга XXII

Дрейк Сириус
22. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор князь. Книга XXII

Чужое наследие

Кораблев Родион
3. Другая сторона
Фантастика:
боевая фантастика
8.47
рейтинг книги
Чужое наследие

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

Тарс Элиан
8. Дважды одаренный
Фантастика:
боевая фантастика
альтернативная история
аниме
попаданцы
5.00
рейтинг книги
Дважды одаренный. Том VIII