【问题标题】:difference between LinkLabel.Click and LinkLabel.LinkClicked event?LinkLabel.Click 和 LinkLabel.LinkClicked 事件之间的区别?
【发布时间】:2011-08-12 11:59:38
【问题描述】:

根据http://msdn.microsoft.com/en-us/library/system.windows.forms.linklabel.aspxLinkLabel 类既有从System.Windows.Forms.Control 继承的Click 事件,也有LinkClicked 事件。据我了解,Click 事件会触发LinkClicked 事件。

到底为什么会有LinkClicked 事件? Click 事件有什么问题?除了点击还有其他触发LinkClicked的方法吗?

【问题讨论】:

  • Click 继承自 Control。您不能取消继承基类成员。

标签: c# winforms events linklabel


【解决方案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);
}

【讨论】:

    猜你喜欢
    • 2011-11-18
    • 2021-06-01
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 2013-05-20
    • 2023-01-26
    相关资源
    最近更新 更多