Текст на кнопке может быть только однострочным. Если он не помещается на кнопке, то будет обрезан. Поэтому нужно быть очень осторожным при выборе текста для кнопки. В следующей главе, посвященной улучшениям элементов управления, приведен пример создания кнопки с многострочным текстом, которая создается при помощи неуправляемого кода с использованием функций Windows API.
Функциональность элемента управления Button
Image
и ImageList
, которые применяются для отображения на кнопке графики.Элемент TextBox
В предыдущем примере дата отображалась в текстовом поле. Это поле создается при помощи класса TextBox
BackColor
и ForeColor
. Событие Click
элементом TextBox
не поддерживается, но разработчик может воспользоваться событиями KeyPress
, KeyUp
и KeyDown
. Следует отметить особенность этого элемента. Несмотря на то что класс TextBox
поддерживает свойство PasswordChar
, при вводе пароля на экране всегда будет использоваться символ звездочки. Задать другой символ не получится.Также текстовое поле не поддерживает свойство CharacterCasing
private void txtCurTime_KeyPress(object sender, KeyPressEventArgs e) {
if (Char.IsLetter(e.KeyChar)) {
// сохраняем текущую позицию каретки
int pos = txtCurTime.SelectionStart;
// переводим в верхний регистр
txtCurTime.Text =
txtCurTime.Text.Insert(txtCurTime.SelectionStart,
Char.ToUpper(e.KeyChar).ToString());
// перемещаем каретку в новую позицию
txtCurTime.SelectionStart = pos + 1;
e.Handled = true;
}
}
У смартфонов внешний вид текстовых полей несколько отличается от стандартного вида. В частности, текстовое поле не имеет окантовки. Более подробно о текстовых полях в приложениях для смартфонов рассказывается в соответствующей главе.
Элемент Label
В рассмотренном примере также использовался элемент Label
Text
. Текст на экране можно выравнивать с помощью свойства TextAlign
. Разработчик может использовать значения TopLeft
, TopCenter
и TopRight
. При изменении текста в метке инициируется событие TextChanged
. При создании элемента нужно следить за длиной отображаемой строки. Если текст слишком большой и не помещается в пределах элемента, то он попросту обрезается.В отличие от полной версии .NET Framework, элемент Label в .NET Compact Framework не поддерживает такие свойства, как AutoSize
BorderStyle
, Image
, ImageList
и многие другие. Также не поддерживается событие Click
. Впрочем, на практике редко возникает нужда в обработке этого события.Элемент RadioButton
Элемент управления RadioButton
Panel
.Когда пользователь выбирает один переключатель, то остальные переключатели в контейнере автоматически переводятся в выключенное состояние. Приложение может иметь несколько групп элементов RadioButton
При изменении состояния переключателя в классе RadioButton
Click
и CheckedChanged
. Событие Click
возникает, когда пользователь щелкает стилусом на самом переключателе. Событие CheckedChanged
возникает, когда состояние элемента RadioButton
меняется программно или в результате действий пользователя. Событие Click
не инициируется, когда свойство CheckedChanged
меняется программно.