[英]calling a event handler within another event handler?
以下是簡短的示例代碼:
private void txtbox1_DoubleClick(object sender, EventArgs e)
{
button1_Click(object sender, EventArgs e); //can I call button1 event handler?
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(txtbox1.Text);
}
我想知道以上述方式編碼是否可行?
你可以這樣做 - 雖然你提供的代碼無法編譯。 它應該如下所示:
private void txtbox1_DoubleClick(object sender, EventArgs e)
{
button1_Click(sender, e);
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(txtbox1.Text);
}
但是為了獲得最佳實踐和代碼可讀性,你可能最好不要這樣做,特別是因為你沒有使用sender
和e
:
private void txtbox1_DoubleClick(object sender, EventArgs e)
{
ShowMessageBox();
}
private void button1_Click(object sender, EventArgs e)
{
ShowMessageBox();
}
private void ShowMessageBox()
{
MessageBox.Show(txtbox1.Text);
}
是的,你可以這么做; 事件處理程序只是另一種方法。
但是,可能值得創建一個顯示消息框的新方法,並讓兩個Click事件處理程序調用:
private void txtbox1_DoubleClick(object sender, EventArgs e)
{
ShowTextboxMessage();
}
private void button1_Click(object sender, EventArgs e)
{
ShowTextboxMessage();
}
private void ShowTextboxMessage()
{
MessageBox.Show(txtbox1.Text);
}
事件處理程序只不過是一個方法,因此您可以像任何其他方法一樣調用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.