2016-07-29 64 views
0

請在某些情況下,我需要您在C#中關於按鈕的幫助。如何知道何時點擊某個按鈕?我想使用if條件語句來編寫事件。所以我希望它在點擊特定按鈕時執行某些操作。我想把所有的代碼放在一個函數或類中,然後我可以隨時調用它。例如如何知道在C中單擊按鈕的時間#

private void showPanel() 
{ 
    if (dashPanelButton.Clicked == true) 
    { 
     dashPanel.Visible = true; 
    } 
    else if(studInfoBtn.Clicked == true) 
    { 
     studInfoPanel.Visible = true; 
    } 
    else 
    { 
     homePanel.Visible = true; 
    } 
} 

注意上面的代碼只是一個假設,不是一個真正的工作代碼。只是用它來解釋自己

回答

0

註冊按鈕Click事件做任何你想做的事件處理程序像

dashPanelButton.Click += new EventHandler(myhandler); 

protected void myhandler(object sender, EventArgs e) 
{ 
    //do whatever you want 
} 
2

你不「檢查是否有按鈕被按下」。該代碼不會坐下來等待點擊發生。相反,你「迴應一個按鈕,然後點擊」與Click事件處理程序:

void myButton_Click(Object sender, EventArgs e) 
{ 
    // do something when the button is clicked 
} 

您可以將處理程序附加到按鈕在設計或代碼:

myButton.Click += new EventHandler(myButton_Click); 

現在,如果你想要爲多個按鈕使用相同的處理程序,這就是Object sender變得有用的地方。這是提到事件的對象。所以你的情況,這將是它被點擊的按鈕:

void myButton_Click(Object sender, EventArgs e) 
{ 
    var theButton = (Button)sender; 
    // now "theButton" is the button which was clicked 
} 
+0

我的意思是我想創建一個方法「showPanel()」,當某個按鈕被點擊時它將顯示一個特定的面板。然後我在每個按鈕事件中調用showPanel方法。因此,無論何時單擊按鈕,它都會調用showPanel方法,並且showPanel方法將檢查單擊哪個按鈕,然後顯示特定的面板。謝謝 –

+0

@OyetokeTobiEmmanuel:在這種情況下,您聽起來好像將'sender'傳遞給'showPanel'方法。 – David

+0

我該怎麼做? –

0

你可以做你想做的,是這樣的:

private void showPanel(Object sender, EventArgs e) 
    { 
     if (sender == dashPanelButton) 
     { 
      dashPanel.Visible = true; 
     } 
     else if (sender == studInfoBtn) 
     { 
      studInfoBtn.Visible = true; 
     } 
     else 
     { 
      homePanel.Visible = true; 
     } 
    } 

確保您的按鈕的接線是否正確

dashPanelButton.Click += new EventHandler(showPanel); 
studInfoBtn.Click += new EventHandler(showPanel);