1

我的表单上有一个用于 LinkLabel linkLabel2_LinkClicked 的事件处理程序:

private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    //code here
}

我需要从另一个没有对象发送者和任何 eventargs 的方法调用它:

private void UpdateMethod()
{
    linkLabel2_LinkClicked(this, ?????)
}

如果它是一个按钮,我只会调用该PerformClick方法。但是我找不到这样的 LinkLabel。

linkLabel2_LinkClicked在事件处理程序中执行代码的最佳实践是什么?

更新:我想我对此并不清楚。当我看到这种方法时,我想知道最佳实践。从答案中我可以看出这不是正确的方法,而是将代码移动到一个单独的方法并直接从另一个方法调用它。请让我知道是否有任何其他推理。

更新2:我现在重写代码如下:

private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    CreatePreview();
}

private void UpdateMethod()
{
    CreatePreview();
}

private void CreatePreview()
{
    //code comes here
}

它完美地工作。

4

2 回答 2

3

您可以将 null 放入事件参数中:

linkLabel2_LinkClicked(this, null);

或创建一个新的事件对象:

linkLabel2_LinkClicked(this, new LinkLabelLinkClickedEventArgs());

但最好的方法是创建一个单独的方法并在每次需要时调用它。

于 2016-04-29T22:50:52.643 回答
2

您可以直接通过null,因为无论如何您都没有使用该参数,但我建议您不要这样做。不鼓励直接调用事件,这会导致代码难以阅读。

只需调用其他方法即可CreatePreview()

private void UpdateMethod()
{
    CreatePreview();
}
于 2016-04-29T22:45:01.577 回答