是否有一个动态创建友好的LinkLabel替代品?

时间:2011-07-01 15:03:49

标签: c# winforms linklabel

我正在尝试在满足某些条件时动态创建从Windows窗体到我们网站的链接(这是一条警告消息,并在我们的在线手册中提供了更多信息)。

目前我发现在这种情况下使用LinkLabel非常笨拙:必须动态设置LinkClicked处理程序以获得简单的超链接看起来不够优雅。

是否有满足以下要求的包装或替代品?:

  • 从System.Windows.Forms.Control继承(所以我可以在TableLayoutPanel中使用它)
  • 设置相当低(例如,没有奇怪的LinkClicked函数预访问检查)
  • 未绑定到特定浏览器

3 个答案:

答案 0 :(得分:2)

LinkClicked事件处理程序有什么问题?几乎任何控件都必须执行相同操作才能执行任何有用的操作。

无论如何,实现自己是微不足道的 - 创建一个继承自LinkLabel的类,添加一个字符串URL属性(如果你想设置,你可能需要一个属性来在设计器属性面板中显示它就这样)并提供一个事件处理程序,用该URL打开浏览器。

然后你可以在设计器中(或在运行时)添加控件,设置URL属性,它将工作,而不必设置事件处理程序。

答案 1 :(得分:1)

您是否使用LinkClicked事件代替OnClick?然后你可以在事件处理程序中使用它:

    (sender as LinkLabel).LinkVisited = true;
    System.Diagnostics.Process.Start("http://example.com");

它没有绑定特定的浏览器 - 在用户的默认浏览器中打开。设置很低 - 只需实例化LinkLabel,将事件连接添加到LinkClicked(这是一个双行方法)并将其添加到页面。这种方法有什么不实用的地方?

答案 2 :(得分:0)

最后,我使用LinkLabel.Links.Add动态修改了链接目的地。