这是简短的示例代码:

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);
}

但是为了最佳实践和代码可读性,您最好这样做,尤其是当您没有使用 sendere 时:
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);
}

关于c# - 在另一个事件处理程序中调用事件处理程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7186549/

10-14 19:31