Nasıl yapılır: Windows Forms StatusBar Denetiminde Hangi Panele Tıklandığını Belirleme
Önemli
ve denetimleri, ve denetimlerinin yerini alan ve denetimlerine işlevsellik StatusStripToolStripStatusLabelStatusBarStatusBarPanel ekler. Ancak, ve denetimleri hem geriye dönük uyumluluk hem de tercih edersanız gelecekteki kullanım StatusBarStatusBarPanel için korunur.
StatusBar Denetimi denetiminde kullanıcı tıklamalarına yanıt vermek üzere program yapmak için olay içinde bir case deyimi kullanın. Olay, tıklandırilen için başvuru içeren bir bağımsız değişken (panel bağımsız değişkeni) StatusBarPanel içerir. Bu başvuruyla, tıklı panelin dizinini belirleyebilirsiniz ve buna göre programlayabilirsiniz.
Not
Denetimin StatusBar özelliğinin olarak ShowPanels ayarlanmış olduğundan emin true olur.
Hangi panele tıklandı belirlemek için
Olay işleyicisinde, olay bağımsız değişkenlerinin tıklı panelin dizinini incelerken hangi panelin tıklandı olduğunu belirlemek için PanelClick
Select Caseswitch case(Visual Basic'de) veya (Visual C# veya Visual C++) deyimini kullanın.Aşağıdaki kod örneği, bir denetimin ve iki nesnesi olan ve şeklinde StatusBar
StatusBar1varlığını StatusBarPanelStatusBarPanel1StatusBarPanel2gerektirir.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 Subprivate 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++) Olay işleyicisini kaydetmek için formun oluşturucus una aşağıdaki kodu ekleyin.
this.statusBar1.PanelClick += new System.Windows.Forms.StatusBarPanelClickEventHandler (this.statusBar1_PanelClick);this->statusBar1->PanelClick += gcnew System::Windows::Forms::StatusBarPanelClickEventHandler (this, &Form1::statusBar1_PanelClick);