Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 523

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

partial class MainWindow: Form {

 // Используется для текущего значения выравнивания текста.

 ContentAlignment currAlignment = ContentAlignment.MiddleCenter;

 int currEnumPos = 0;

 public MainWindow() {

  InitializeComponent();

  CenterToScreen();

 }

 private void btnStandard_Click (object sender, EventArgs e) {

  // Получение всех значений перечня ContentAlignment,

  Array values = Enum.GetValues(currAlignment.GetType());

  // Чтение текущей позиции в перечне

  // и циклический возврат.

  currEnumPos++;

  if (currEnumPos ›= values.Length) currEnumPos = 0;

  // Чтение текущего значения перечня.

  currAlignment = (ContentAlignment)Enum.Parse(currAlignment.GetType(), values.GetValue(currEnumPos).ToString());

  // Вывод текста и его выравнивание на btnStandard.

  btnStandard.TextAlign = currAlignment;

  btnStandard.Text = сurrAlignment.ToString();

  // Размещение пиктограммы на btnImage.

  btnImage.ImageAlign = currAlignment;

 }

}

Теперь запустите свою программу. При щелчке на средней кнопке вы увидите, что текст займет позицию и изменится в соответствии с текущим значением переменной currAlignment. Пиктограмма в пределах btnImage тоже займет позицию, cоответствующую этому значению. На рис. 21.7 показан вывод программы.

Рис. 21.7. Вариации типа Button

Исходный код. Проект Buttons размещён в подкаталоге, соответствующем главе 21.

Элементы CheckBox, RadioButton и Group Box

Пространство имен System.Windows.Forms определяет целый ряд других типов, расширяющих возможности ButtonBase, и это, в частности, тип CheckBox (кнопка с независимой фиксацией, может поддерживать до трех возможных состояний) и тип RadioButton (кнопка с зависимой фиксацией, может иметь два состояния – "включена" и "выключено"). Подобно типу Button, эти типы тоже наследуют заметную долю своих функциональных возможностей от базового класса Control. Однако каждый класс определяет и свои уникальные дополнительные возможности. Сначала мы рассмотрим базовые свойства элемента управлений CheckBox, описанные в табл. 21.5.

Таблица 21.5. Свойства CheckBox

Свойство Описание
Appearance Настраивает вид элемента управления Checkbox, используя значения перечня Appearance
AutoCheck Считывает или устанавливает значение, являющееся индикатором необходимости автоматического изменения значений Checked или CheckState и внешнего вида CheckBox при щелчке на нем
CheckAlign Считывает или устанавливает параметры выравнивания по горизонтали и вертикали для CheckBox, используя значения перечня ContentAlignment (во многом аналогично типу Button)
Checked Возвращает булево значение, представляющее состояние CheckBox (включен или выключен). Если свойство ThreeState равно true (истина), то свойство Checked возвращает true как для включенного, так и для неопределенного состояния
CheckState Считывает или устанавливает значение-индикатор включенного состояния CheckBox, используя значения перечня CheckState, а не булево значение
ThreeState Индикатор поддержки в CheckBox не двух, а трех состояний выбора (в соответствии с перечнем CheckState)