Член-переменная панели Свойства для установки События для обработки
toolStripStatusLabelMenuState Spring=true Text=(пусто) TextAlign=TopLeft Нет
toolStripStatusLabelClock BorderSides=All Text=(пусто) Нет
toolStripDropDownButtonDateTime  Image=(см. ниже)  Нет
dayoftheWeekToolStripMenuItemText = "День недели"MouseHover Click
currentTimeToolStripMenuItem Text = "Текущее время" MouseHover Click

Итак, проектирование нашего графического интерфейса пользователя завершено. Но, чтобы реализовать оставшиеся обработчики событий, мы с вами должны выяснить роль компонента Timer (таймер).

<p>Работа с типом Timer</p>

Напомним, что средняя часть строки состояния должна отображать текущее время или текущую дату, в зависимости от предпочтений пользователя.

Первым шагом на пути к достижению этой цели является добавление в форму члена-переменной Timer – компонента, вызывающего некоторый метод (указанный с помощью обработчика события Tick) через заданный интервал времени (указанный с помощью свойства Interval).

Перетащите компонент Timer в окно проектирования формы и переименуйте его в timerDateTimeUpdate. Используя окно свойств, установите значение свойства Interval равным 1000 (это значение в миллисекундах), а значение свойства Enabled – равным true (истина). Наконец, обработайте событие Tick. Перед реализацией обработчика событий Tick определите в проекте новый тип перечня с именем DateTimeFormat. Этот перечень будет использоваться для выяснения того, что должен отображать второй элемент ToolStripStatusLabel – текущее время или текущую дату.

enum DateTimeFormat {

 ShowClock,

 ShowDay

}

Построив перечень, обновите MainWindow так, как предлагается ниже.

public partial class MainWindow: Form {

 // Какой формат отображать?

 DateTimeFormat dtFormat = DateTimeFormat.ShowClock;

 …

 private void timerDateTimeUpdate_Tick(object sender, EventArgs e) {

  string panelInfo = "";

  // Создание текущего формата.

  if (dtFormat == DateTimeFormat.ShowClock) panelInfo = DateTime.Now.ToLongTimeString();

  else panelInfo = DateTime.Now.ToLongDateString();

  // Установка текста для панели.

  toolStripStatusLabelClock.Text = panelInfo;

 }

}

Обратите внимание на то, что обработчик события Timer использует тип DateTime. Здесь вы просто читаете текущее время или дату системы, используя свойство Now, и устанавливаете соответствующее значение для свойства Text члена-переменной toolStripStatusLabelClock.

<p>Включение отображения</p>

В этот момент обработчик событий Tick должен отобразить в панели toolStripStatusLabelClock текущее время, если значением по умолчанию члена-переменной DateTimeFormat является DateTimeFormat.ShowClock. Чтобы позволить пользователю переключаться между отображением даты и времени, обновите MainWindow так, как предлагается ниже (заметьте, что здесь также указано, какой из двух пунктов меню в ToolStripDropDownButton должен при этом отмечаться).

public partial class MainWindow: Form {

 // Какой формат отображать?

 DateTimeFormat dtFormat = DateTimeFormat.ShowClock;

 // Указывает отмеченный элемент.

 private ToolStripMenuItem currentCheckedItem;

 public MainWindow() {

  InitializeComponent();

  // Эти свойства можно также установить

  // в окне Properties.

  Text = "Пример StatusStrip";

  CenterToScreen();

  BackColor = Color.CadetBlue;

  currentCheckedItem = currentTimeToolStripMenuItem;

  currentCheckedItem.Checked = true;

 }

 …

 private void currentTimeToolStripMenuItem_Click(object sender, EventArgs e) {

  // Установка отметки и формата времени для панели.

  currentCheckedItem.Checked = false;

Перейти на страницу:

Похожие книги