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());
但最好的方法是创建一个单独的方法,并在每次需要时调用它。
我的表单上有一个 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());
但最好的方法是创建一个单独的方法,并在每次需要时调用它。