LinkLabel.Click 和 LinkLabel.LinkClicked 事件之间的区别?
Posted
技术标签:
【中文标题】LinkLabel.Click 和 LinkLabel.LinkClicked 事件之间的区别?【英文标题】:difference between LinkLabel.Click and LinkLabel.LinkClicked event? 【发布时间】:2011-08-12 11:59:38 【问题描述】:根据http://msdn.microsoft.com/en-us/library/system.windows.forms.linklabel.aspx,LinkLabel
类既有从System.Windows.Forms.Control
继承的Click
事件,也有LinkClicked
事件。据我了解,Click
事件会触发LinkClicked
事件。
到底为什么会有LinkClicked
事件? Click
事件有什么问题?除了点击还有其他触发LinkClicked
的方法吗?
【问题讨论】:
Click 继承自 Control。您不能取消继承基类成员。 【参考方案1】:Click
如果您单击控件中的任意位置,将被触发。 LinkClicked
仅在您单击链接区域时才会出现。 Click
在这两种情况下都会出现(如果您单击链接,则在 LinkClicked
之前)。
【讨论】:
另外,如果LinkLabel
具有焦点并且用户按Enter,则似乎只有LinkClicked
被调用。【参考方案2】:
LinkClicked 事件具有特定的LinkLabelLinkClickedEventArg,它允许您做的不仅仅是响应 Click 事件,用户单击控件上的任何位置而不仅仅是链接部分可以触发该事件。
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
// Specify that the link was visited.
this.linkLabel1.LinkVisited = true;
var target = e.Link.LinkData as string;
System.Diagnostics.Process.Start(target);
【讨论】:
以上是关于LinkLabel.Click 和 LinkLabel.LinkClicked 事件之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章
第三十一节:扫盲并发和并行同步和异步进程和线程阻塞和非阻塞响应和吞吐等
shell中$()和 ` `${}${!}${#}$[] 和$(()),[ ] 和(( ))和 [[ ]]