我的表单上有一个事件处理程序,用于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
}
效果很好。
答案 0 :(得分:3)
您可以在事件参数中添加null:
linkLabel2_LinkClicked(this, null);
或创建一个新的事件对象:
linkLabel2_LinkClicked(this, new LinkLabelLinkClickedEventArgs());
但最好的方法是创建一个单独的方法,并在每次需要时调用它。
答案 1 :(得分:2)
你可以传递null
因为你还没有使用参数,但我建议不要这样做。不鼓励直接调用事件,这导致代码难以阅读。
让其他方法调用CreatePreview()
。
private void UpdateMethod()
{
CreatePreview();
}