C# 从另一个方法调用事件 (linkLabel2_LinkClicked)

C# Call an event (linkLabel2_LinkClicked) from another method

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

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

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

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

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

linkLabel2_LinkClicked 事件处理程序中执行代码的最佳做法是什么?

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

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

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

private void UpdateMethod()
{
    CreatePreview();
}

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

效果很好。

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

只需调用另一个方法 CreatePreview()

private void UpdateMethod()
{
    CreatePreview();
}

您可以在事件参数中输入空值:

linkLabel2_LinkClicked(this, null);

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

linkLabel2_LinkClicked(this, new LinkLabelLinkClickedEventArgs());

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