woo*_*ddy 4 .net c# event-handling
以下是简短的示例代码:
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);
}
Run Code Online (Sandbox Code Playgroud)
我想知道以上述方式编码是否可行?
你可以这样做 - 虽然你提供的代码无法编译.它应该如下所示:
private void txtbox1_DoubleClick(object sender, EventArgs e)
{
button1_Click(sender, e);
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(txtbox1.Text);
}
Run Code Online (Sandbox Code Playgroud)
但是为了获得最佳实践和代码可读性,你可能最好不要这样做,特别是当你没有使用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);
}
Run Code Online (Sandbox Code Playgroud)
是的,你可以这样做; 事件处理程序只是另一种方法。
然而,创建一个显示消息框的新方法并让两个 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);
}
Run Code Online (Sandbox Code Playgroud)