是否有一个动态创建友好的LinkLabel替代方案

本文关键字:LinkLabel 方案 有一个 动态 创建 是否 | 更新日期: 2023-09-27 18:00:57

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

目前,我发现LinkLabel在这种情况下很难使用:必须为一个简单的超链接动态设置LinkClicked处理程序似乎很不雅。

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

  • 从System.Windows.Forms.Control继承(因此我可以在TableLayoutPanel中使用它(
  • 设置相对较低(例如,没有奇怪的LinkClicked功能访问前检查(
  • 未绑定到特定浏览器

是否有一个动态创建友好的LinkLabel替代方案

LinkClicked事件处理程序有什么问题?为了做任何有用的事情,你几乎对任何控件都必须这样做。

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

然后,您只需在设计器中(或在运行时(添加控件,设置URL属性,它就可以工作,而无需设置事件处理程序。

是否使用了LinkClicked事件而不是OnClick?然后你可以在事件处理程序中使用这个:

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

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

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