Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 473
Эндрю Троелсен
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.
Включение отображения
В этот момент обработчик событий 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;
dtFormat = DateTimeFormat.ShowClock;
currentCheckedItem = currentTimeToolStripMenuItem;
currentCheckedItem.Checked = true;
}
private void dayoftheWeekToolStripMenuItem_Click(object Sender, EventArgs e) {
// Установка отметки и формата даты для панели.
currentCheckedItem.Checked = false;
dtFormat = DateTimeFormat.ShowDay;
currentCheckedItem = dayoftheWeekToolStripMenuItem;
currentCheckedIteim.Checked = true;
}
}
Вывод подсказок для выбранных элементов меню
Наконец, нужно настроить первую панель так. чтобы она содержала текст подсказки для выбранного пользователем элемента меню. Вы знаете, что большинство приложений отображает в левой части строки состояния поясняющую информацию (например, "Выход из приложения"), соответствующую выбранному конечным пользователем пункту меню. Если вы обработали события MouseHover для всех элементов меню нижнего уровня в MenuStrip и ToolStripDropDownButton, то остается только присвоить подходящее значение свойству Text для члена-переменной toolStripStatusLabelMenuState, например:
private void exitToolStripMenuItem_MouseHover(object sender, EventArgs e) { toolStripStatusLabelMenuState.Text = "Выход из приложения"; }