是否有一个动态创建友好的LinkLabel替代方案
本文关键字:LinkLabel 方案 有一个 动态 创建 是否 | 更新日期: 2023-09-27 18:00:57
当满足某些条件时,我正试图动态创建一个从Windows窗体到我们网站的链接(这是一条警告消息,在我们的在线手册中有更多信息(。
目前,我发现LinkLabel在这种情况下很难使用:必须为一个简单的超链接动态设置LinkClicked处理程序似乎很不雅。
是否有满足以下要求的包装或替代品?:
- 从System.Windows.Forms.Control继承(因此我可以在TableLayoutPanel中使用它(
- 设置相对较低(例如,没有奇怪的LinkClicked功能访问前检查(
- 未绑定到特定浏览器
LinkClicked
事件处理程序有什么问题?为了做任何有用的事情,你几乎对任何控件都必须这样做。
无论如何,实现自己是很简单的——创建一个从LinkLabel继承的类,添加一个字符串URL
属性(如果你想这样设置,你可能需要一个属性来在设计器属性面板中显示它(,并提供一个用该URL打开浏览器的事件处理程序。
然后,您只需在设计器中(或在运行时(添加控件,设置URL属性,它就可以工作,而无需设置事件处理程序。
是否使用了LinkClicked
事件而不是OnClick
?然后你可以在事件处理程序中使用这个:
(sender as LinkLabel).LinkVisited = true;
System.Diagnostics.Process.Start("http://example.com");
它不绑定特定的浏览器-在用户的默认浏览器中打开。设置很低——只需实例化LinkLabel,向LinkClicked
(这是一个两行方法(添加一个事件连接,并将其添加到页面中。这种方法有什么笨拙之处?
最后,我使用LinkLabel.Links.Add
动态修改链接目的地。。