【发布时间】:2016-04-29 22:42:23
【问题描述】:
我的表单上有一个用于 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
}
效果很好。
【问题讨论】:
-
为什么投反对票?我已经看到这样做了,例如在这里:stackoverflow.com/questions/11518529/… 我从答案中得知这是一种不好的做法,但这就是我首先问的原因......
标签: c# winforms eventhandler linklabel