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

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

Жанры

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Троелсен Эндрю

Шрифт:

После размещения Button и Textbox в окне проектирования формы рассмотрите программный код, сгенерированный в методе InitializeComponent. Вы обнаружите, что соответствующие типы автоматически были созданы с помощью new и добавлены в коллекцию ControlCollection формы (в дополнение к установкам, которые вы, возможно, добавили с помощью окна свойств).

private void InitializeComponent {

 this.btnMyButton = new System.Windows.Forms.Button;

 this.txtMyTextBox = new System.Windows.Forms.TextBox;

 …

 // MainWindow

 //

 …

 this.Controls.Add(this.txtMyTextBox);

 this.Controls.Add(this.btnMyButton);

 …

}

Рис. 21.2.

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

Как видите, такие инструменты, как Visual Studio 2005, во многом избавляют вас от необходимости вводить программный код вручную (возможно, избавляя и от боли в пальцах). Итак, в результате ваших действий в окне проектирования формы среда разработки автоматически модифицирует InitializeComponent. Но вы также можете конфигурировать элементы управления и непосредственно в программном коде (в конструкторах, обработчиках событий, вспомогательных функциях и т.д.), поскольку задачей InitializeComponent является создание начального состояния элементов интерфейса. Тем не менее, если вы хотите упростить себе жизнь, позвольте Visual Studio 2005 поддерживать InitializeComponent автоматически, поскольку средства проектирования формы могут проигнорировать или переписать изменения, сделанные вами в рамках этого метода.

Работа с базовыми элементами управления

Пространство имен System.Windows.Forms определяет множество "базовых элементов управления", которые можно видеть во многих типичных окнах (это кнопки, надписи, текстовые окна, переключатели и т.д.). Вы, наверное, уже знаете об основных возможностях соответствующих типов, но давайте рассмотрим некоторые наиболее интересные особенности следующих базовых элементов пользовательского интерфейса:

• Label (надпись), TextBox (текстовое окно) и MaskedTextBox (маскированное текстовое окно);

• Button (кнопка);

• CheckBox (кнопка с независимой фиксацией), RadioButton (кнопка с зависимей фиксацией) и GroupBox (групповой блок);

• CheckedListBox (окно отмечаемого списка), ListBox (окно списка) и ComboBox (комбинированное окно).

Освоив работу с этими элементами управления, производными от типа Control, мы с вами обратим внимание на более "экзотические" элементы, такие как MonthCalendar, TabControl, TrackBar, WebBrowser и т.д.

Элемент Label

Элемент управления Label (надпись) может содержать информацию, доступную только для чтения (текст или изображение), например, для того, чтобы пояснить пользователю роль и возможности использования остальных элементов управления, помещенных в форму. Предположим, вы создали в Visual Studio 2005 новый проект Windows Forms с именем LabelsAndTextBoxes. В рамках полученного экземпляра типа Form

определите метод с именем CreateLabelControl, который сначала создает и конфигурирует тип Label, а затем добавляет его в коллекцию элементов управления формы,

private void CreateLabelControl {

 // Создание и конфигурация Label.

 Label lblInstructions = new Label;

 lblInstructions.Name = "lblInstructions";

 lblInstructions.Text = ''Введите значения во все окна текста";

 lblInstructions.Font = new Font("Times New Roman", 9.75F, FontStyle.Bold);

 lblInstructions.AutoSize = true;

 lblInstructions.Location = new System.Drawing.Point(16, 13);

 lblInstructions.Size = new System.Drawing.Size(240, 16);

 // Добавление в коллекцию элементов управления формы.

 Controls.Add(lblInstructions);

}

Чтобы увидеть соответствующую подсказку в верхней части главного окна формы, поместите вызов этой вспомогательной функции в конструктор формы.

public MainWindow {

 InitializeComponent;

 CreateLabelControl;

 CenterToScreen;

}

В отличие от большинства других элементов, элементы управления Label не могут получать фокус ввода при переходах по клавише табуляции. Однако в .NET 2.0 для любого элемента управления Label можно создать мнемонические клавиши установив для свойства UseMnemonic значение true (именно это значение устанавливается для данного свойства по умолчанию). После этого в свойстве Text надписи можно (с помощью символа амперсанда &) определить комбинацию клавиш для перехода к соответствующему элементу управления.

Замечание. Порядок переходов по табуляции подробнее будет обсуждаться позже, а пока что достаточно заметить, что порядок данного элемента управления при переходах по клавише табуляции устанавливается с помощью свойства TabIndex. По умолчанию значение TabIndex элемента управления соответствует порядку, в котором элементы добавлялись в окно проектирования формы. Поэтому, если вы сначала добавите Label, а затем – Textbox, то для Label значение TabIndex будет установлено равным 0, а для Textbox – равным 1.

Для примера с помощью окна проектирования формы постройте пользовательский интерфейс, состоящий из трех Label и трех Textbox (рис. 21.3). Не забудьте оставить свободное место в верхней части формы для отображения элемента Labels динамически создаваемого в методе CreateLabelControl, и обратите внимание на то, что здесь каждая надпись содержит подчеркнутую букву. Так выделяются буквы, которые в значении свойства Text надписи были помечены знаком &. Вы, наверное, знаете, что помеченные знаком & символы обеспечивают возможность активизации элемента пользователем с помощью выбора комбинации клавиш ‹Alt+ помеченный символ›.

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

Шайтан Иван 2

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

Наследник старого рода

Шелег Дмитрий Витальевич
1. Живой лёд
Фантастика:
фэнтези
8.19
рейтинг книги
Наследник старого рода

Аргумент барона Бронина 2

Ковальчук Олег Валентинович
2. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 2

Третье правило дворянина

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

Убивать чтобы жить 3

Бор Жорж
3. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 3

СД. Том 15

Клеванский Кирилл Сергеевич
15. Сердце дракона
Фантастика:
героическая фантастика
боевая фантастика
6.14
рейтинг книги
СД. Том 15

Жена неверного маршала, или Пиццерия попаданки

Удалова Юлия
Любовные романы:
любовно-фантастические романы
4.25
рейтинг книги
Жена неверного маршала, или Пиццерия попаданки

Мымра!

Фад Диана
1. Мымрики
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Мымра!

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

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

Оцифрованный. Том 1

Дорничев Дмитрий
1. Линкор Михаил
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Оцифрованный. Том 1

Элита элит

Злотников Роман Валерьевич
1. Элита элит
Фантастика:
боевая фантастика
8.93
рейтинг книги
Элита элит

Хуррит

Рави Ивар
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Хуррит

Шаман. Похищенные

Калбазов Константин Георгиевич
1. Шаман
Фантастика:
боевая фантастика
попаданцы
6.44
рейтинг книги
Шаман. Похищенные

Курсант: Назад в СССР 4

Дамиров Рафаэль
4. Курсант
Фантастика:
попаданцы
альтернативная история
7.76
рейтинг книги
Курсант: Назад в СССР 4