Продолжаем заниматься строкой состояния.
Вот так мы можем обрабатывать щелчок мышью на нашей строке состояния:
private void statusBar1_PanelClick(object sender,
System.Windows.Forms.StatusBarPanelClickEventArgs e)
{
// Производим действие только при щелчке правой кнопкой
// мыши на нулевой панели.
if(e.Button == MouseButtons.Right &&
e.StatusBarPanel == statusBar1.Panels[0])
{
MessageBox.Show("Нулевая панель");
}
}
Обратите внимание на параметр e типа StatusBarPanelClickEventArgs, передаваемый в наш обработчик. Он имеет такие свойства как X и Y (позволяют определить точку, на которой мы щелкнули), StatusBarPanel (позволяет определить панель, на которой щелкнули - см. пример выше), Button (служит для определения кнопки мыши - применение этого свойства тоже есть в нашем примере), Clicks - сколько раз была нажата и отпущена кнопка мыши и др.
Часто для строки состояния необходимо, чтобы правая панель имела фиксированный размер и располагалась всегда в превом углу формы. Это можно сделать, например, так:
private void statusBar1_Resize(object sender, System.EventArgs e)
{
statusBar1.Panels[0].Width = statusBar1.Width-100;
}
Мы тут добавили обработчик для изменения размера строки состояния. В нем мы устанавливаем размер левой панели только на 100 меньше, чем размер всей строки состояния. 100 же пикселов остается на правую панель.
Теперь правая панель имеет фиксированный размер: