방법: Windows Forms StatusBar 컨트롤에서 클릭한 패널 확인
업데이트: 2007년 11월
중요: |
---|
StatusStrip 및 ToolStripStatusLabel 컨트롤은 StatusBar 및 StatusBarPanel 컨트롤에 새로운 기능이 추가된 것으로, 이전 컨트롤을 대체합니다. 그러나 이전 버전과의 호환성 및 앞으로의 사용 가능성을 고려하여 StatusBar 및 StatusBarPanel 컨트롤을 유지하도록 선택할 수 있습니다. |
사용자 클릭에 응답하도록 StatusBar 컨트롤(Windows Forms) 컨트롤을 프로그래밍하려면 PanelClick 이벤트 내에서 case 문을 사용합니다. 이벤트에는 클릭된 StatusBarPanel 개체에 대한 참조를 포함하는 인수인 panel 인수가 있습니다. 클릭한 패널의 인덱스를 이 참조를 통해 확인하고 그에 따라 프로그래밍할 수 있습니다.
참고: |
---|
StatusBar 컨트롤의 ShowPanels 속성이 true로 설정되어 있어야 합니다. |
클릭한 패널을 확인하려면
PanelClick 이벤트 처리기에서 Select Case(Visual Basic) 문 또는 switch case(Visual C# 또는 Visual C++) 문을 사용하여, 클릭한 패널의 인덱스를 이벤트 인수에서 검사하면 어떤 패널을 클릭했는지 확인할 수 있습니다.
다음 코드 예제에서는 폼에 StatusBar 컨트롤인 StatusBar1과 두 개의StatusBarPanel 개체, StatusBarPanel1 및 StatusBarPanel2가 있어야 합니다.
Private Sub StatusBar1_PanelClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.StatusBarPanelClickEventArgs) Handles StatusBar1.PanelClick Select Case StatusBar1.Panels.IndexOf(e.StatusBarPanel) Case 0 MessageBox.Show("You have clicked Panel One.") Case 1 MessageBox.Show("You have clicked Panel Two.") End Select End Sub
private void statusBar1_PanelClick(object sender, System.Windows.Forms.StatusBarPanelClickEventArgs e) { switch (statusBar1.Panels.IndexOf(e.StatusBarPanel)) { case 0 : MessageBox.Show("You have clicked Panel One."); break; case 1 : MessageBox.Show("You have clicked Panel Two."); break; } }
private: void statusBar1_PanelClick(System::Object ^ sender, System::Windows::Forms::StatusBarPanelClickEventArgs ^ e) { switch (statusBar1->Panels->IndexOf(e->StatusBarPanel)) { case 0 : MessageBox::Show("You have clicked Panel One."); break; case 1 : MessageBox::Show("You have clicked Panel Two."); break; } }
(Visual C#, Visual C++) 폼의 생성자에 다음 코드를 배치하여 이벤트 처리기를 등록합니다.
this.statusBar1.PanelClick += new System.Windows.Forms.StatusBarPanelClickEventHandler (this.statusBar1_PanelClick);
this->statusBar1->PanelClick += gcnew System::Windows::Forms::StatusBarPanelClickEventHandler (this, &Form1::statusBar1_PanelClick);