StatusBar.PanelClick Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит при щелчке пользователем объекта StatusBarPanel элемента управления StatusBar.
public:
event System::Windows::Forms::StatusBarPanelClickEventHandler ^ PanelClick;
public event System.Windows.Forms.StatusBarPanelClickEventHandler PanelClick;
member this.PanelClick : System.Windows.Forms.StatusBarPanelClickEventHandler
Public Custom Event PanelClick As StatusBarPanelClickEventHandler
Тип события
Примеры
В следующем примере кода показано, как использовать SizingGripчлены , StatusBarPanel.Alignment, StatusBarPanel.Width, StatusBarPanel.AutoSizeи StatusBarPanel.BorderStyle и , а также как обрабатывать PanelClick событие.
Чтобы выполнить пример, вставьте следующий код в форму.
InitializeStatusBarPanels
Вызовите метод в конструкторе или Load
методе формы.
internal:
System::Windows::Forms::StatusBar^ statusBar1;
private:
void InitializeStatusBarPanels()
{
// Create a StatusBar control.
statusBar1 = gcnew StatusBar;
// Dock the status bar at the top of the form.
statusBar1->Dock = DockStyle::Top;
// Set the SizingGrip property to false so the user cannot
// resize the status bar.
statusBar1->SizingGrip = false;
// Associate the event-handling method with the
// PanelClick event.
statusBar1->PanelClick += gcnew StatusBarPanelClickEventHandler( this, &Form1::statusBar1_PanelClick );
// Create two StatusBarPanel objects to display in statusBar1.
StatusBarPanel^ panel1 = gcnew StatusBarPanel;
StatusBarPanel^ panel2 = gcnew StatusBarPanel;
// Set the width of panel2 explicitly and set
// panel1 to fill in the remaining space.
panel2->Width = 80;
panel1->AutoSize = StatusBarPanelAutoSize::Spring;
// Set the text alignment within each panel.
panel1->Alignment = HorizontalAlignment::Left;
panel2->Alignment = HorizontalAlignment::Right;
// Display the first panel without a border and the second
// with a raised border.
panel1->BorderStyle = StatusBarPanelBorderStyle::None;
panel2->BorderStyle = StatusBarPanelBorderStyle::Raised;
// Set the text of the panels. The panel1 object is reserved
// for line numbers, while panel2 is set to the current time.
panel1->Text = "Reserved for important information.";
panel2->Text = System::DateTime::Now.ToShortTimeString();
// Set a tooltip for panel2
panel2->ToolTipText = "Click time to display seconds";
// Display panels in statusBar1 and add them to the
// status bar's StatusBarPanelCollection.
statusBar1->ShowPanels = true;
statusBar1->Panels->Add( panel1 );
statusBar1->Panels->Add( panel2 );
// Add the StatusBar to the form.
this->Controls->Add( statusBar1 );
}
// If the user clicks the status bar, check the text of the
// StatusBarPanel. If the text equals a short time string,
// change it to long time display.
void statusBar1_PanelClick( Object^ /*sender*/, StatusBarPanelClickEventArgs^ e )
{
if ( e->StatusBarPanel->Text == System::DateTime::Now.ToShortTimeString() )
{
e->StatusBarPanel->Text = System::DateTime::Now.ToLongTimeString();
}
}
internal System.Windows.Forms.StatusBar statusBar1;
private void InitializeStatusBarPanels()
{
// Create a StatusBar control.
statusBar1 = new StatusBar();
// Dock the status bar at the top of the form.
statusBar1.Dock = DockStyle.Top;
// Set the SizingGrip property to false so the user cannot
// resize the status bar.
statusBar1.SizingGrip = false;
// Associate the event-handling method with the
// PanelClick event.
statusBar1.PanelClick +=
new StatusBarPanelClickEventHandler(statusBar1_PanelClick);
// Create two StatusBarPanel objects to display in statusBar1.
StatusBarPanel panel1 = new StatusBarPanel();
StatusBarPanel panel2 = new StatusBarPanel();
// Set the width of panel2 explicitly and set
// panel1 to fill in the remaining space.
panel2.Width = 80;
panel1.AutoSize = StatusBarPanelAutoSize.Spring;
// Set the text alignment within each panel.
panel1.Alignment = HorizontalAlignment.Left;
panel2.Alignment = HorizontalAlignment.Right;
// Display the first panel without a border and the second
// with a raised border.
panel1.BorderStyle = StatusBarPanelBorderStyle.None;
panel2.BorderStyle = StatusBarPanelBorderStyle.Raised;
// Set the text of the panels. The panel1 object is reserved
// for line numbers, while panel2 is set to the current time.
panel1.Text = "Reserved for important information.";
panel2.Text = System.DateTime.Now.ToShortTimeString();
// Set a tooltip for panel2
panel2.ToolTipText = "Click time to display seconds";
// Display panels in statusBar1 and add them to the
// status bar's StatusBarPanelCollection.
statusBar1.ShowPanels = true;
statusBar1.Panels.Add(panel1);
statusBar1.Panels.Add(panel2);
// Add the StatusBar to the form.
this.Controls.Add(statusBar1);
}
// If the user clicks the status bar, check the text of the
// StatusBarPanel. If the text equals a short time string,
// change it to long time display.
private void statusBar1_PanelClick(object sender,
StatusBarPanelClickEventArgs e)
{
if (e.StatusBarPanel.Text ==
System.DateTime.Now.ToShortTimeString())
{
e.StatusBarPanel.Text =
System.DateTime.Now.ToLongTimeString();
}
}
Friend WithEvents statusBar1 As System.Windows.Forms.StatusBar
Private Sub InitializeStatusBarPanels()
' Create a StatusBar control.
statusBar1 = New StatusBar
' Dock the status bar at the top of the form.
statusBar1.Dock = DockStyle.Top
' Set the SizingGrip property to false so the user cannot
' resize the status bar.
statusBar1.SizingGrip = False
' Create two StatusBarPanel objects to display in statusBar1.
Dim panel1 As New StatusBarPanel
Dim panel2 As New StatusBarPanel
' Set the width of panel2 explicitly and set
' panel1 to fill in the remaining space.
panel2.Width = 80
panel1.AutoSize = StatusBarPanelAutoSize.Spring
' Set the text alignment within each panel.
panel1.Alignment = HorizontalAlignment.Left
panel2.Alignment = HorizontalAlignment.Right
' Display the first panel without a border and the second
' with a raised border.
panel1.BorderStyle = StatusBarPanelBorderStyle.None
panel2.BorderStyle = StatusBarPanelBorderStyle.Raised
' Set the text of the panels. The panel1 object is reserved
' for line numbers, while panel2 is set to the current time.
panel1.Text = "Reserved for important information."
panel2.Text = System.DateTime.Now.ToShortTimeString
' Set a tooltip for panel2
panel2.ToolTipText = "Click time to display seconds"
' Display panels in statusBar1 and add them to the
' status bar's StatusBarPanelCollection.
statusBar1.ShowPanels = True
statusBar1.Panels.Add(panel1)
statusBar1.Panels.Add(panel2)
' Add the StatusBar to the form.
Me.Controls.Add(statusBar1)
End Sub
' If the user clicks the status bar, check the text of the
' StatusBarPanel. If the text equals a short time string,
' change it to long time display.
Private Sub statusBar1_PanelClick(ByVal sender As Object, _
ByVal e As StatusBarPanelClickEventArgs) _
Handles statusBar1.PanelClick
If (e.StatusBarPanel.Text = _
System.DateTime.Now.ToShortTimeString) Then
e.StatusBarPanel.Text = System.DateTime.Now.ToLongTimeString
End If
End Sub
Комментарии
Это событие можно использовать для выполнения задач при щелчке панели в элементе StatusBar управления. Данные, предоставленные событию с помощью StatusBarPanelClickEventArgs , переданного в качестве параметра обработчику событий, позволяют определить StatusBarPanel объект , который был нажат пользователем для выполнения задач на выбранной панели.
Дополнительные сведения об обработке событий см. в разделе Обработка и вызов событий.