C# winform 使用RichtextBox控件中指定内容作为超链接

wanghan226 2012-09-20 03:17:40
目前开发的模块通过richtextbox控件传输文本信息,信息中传递的产品编号以英文开头如:T20120912001等等,希望实现让这类编号以超链接的形式展现,用户如果单击该链接通过LinkClicked就可以获得该编号来实现其他功能。

尝试过使用LinkLabel 加载到richtextbox但展示效果极差,请教有什么其他办法能实现?
...全文
830 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghan226 2012-09-26
  • 打赏
  • 举报
回复
还是换个思路解决的,通过双击事件获得选中的业务编号,因为在控件中英文字母是按串选中的,如果是中文就不行了。不过这么实现灵活性很差。
蒋晟 2012-09-26
  • 打赏
  • 举报
回复
CFM_LINK, EM_SETCHARFORMAT
wanghan226 2012-09-24
  • 打赏
  • 举报
回复
再次请教,提供新的实现思路也行。
wanghan226 2012-09-20
  • 打赏
  • 举报
回复
上边的资料基本都了解,用linklable加载后与其他文本内容连起来视觉效果很差有时会掩盖原文本,
至于设置颜色无助于在超链接事件中提取文本
继续求助
kousansky 2012-09-20
  • 打赏
  • 举报
回复
找了一段资料你看看是否有帮助?


---Visual Studio

使用 Windows 窗体 RichTextBox 控件显示 Web 样式的链接请参见
RichTextBox.DetectUrls 属性 | RichTextBox.LinkClicked 事件 | RichTextBox 类 | RichTextBox 控件(Windows 窗体) | 可在 Windows 窗体中使用的控件
Windows 窗体 RichTextBox 控件可以将 Web 链接显示为彩色或下划线形式。可以编写代码,在单击链接时打开浏览器窗口,该窗口中显示链接文本中指定的 Web 站点。

使用 RichTextBox 控件链接到 Web 页

将 Text 属性设置为包含有效 URL(例如“http://www.Microsoft.com/china”)的字符串。
确保将 DetectUrls 属性设置为 true(默认)。
实例化 Process 对象的全局实例。
为向浏览器发送所需文本的 LinkClicked 事件编写事件处理程序。
在下面的示例中,LinkClicked 事件根据在 RichTextBox 控件的 Text 属性中指定的 URL 打开 Internet Explorer 的一个实例。此示例假定窗体具有 RichTextBox 控件。

安全说明 在调用 Start 方法时,如果您由于没有足够的特权而在部分信任的上下文中运行代码,则将遇到 System.Security.SecurityException 异常。有关更多信息,请参见代码访问安全性基础知识。
' Visual Basic
Public p As New System.Diagnostics.Process
Private Sub RichTextBox1_LinkClicked _
(ByVal sender As Object, ByVal e As _
System.Windows.Forms.LinkClickedEventArgs) _
Handles RichTextBox1.LinkClicked
' Call Process.Start method to open a browser
' with link text as URL.
p = System.Diagnostics.Process.Start( "IExplore.exe ", e.LinkText)
End Sub

// C#
public System.Diagnostics.Process p = new System.Diagnostics.Process();

private void richTextBox1_LinkClicked(object sender,
System.Windows.Forms.LinkClickedEventArgs e)
{
// Call Process.Start method to open a browser
// with link text as URL.
p = System.Diagnostics.Process.Start( "IExplore.exe ", e.LinkText);
}

kousansky 2012-09-20
  • 打赏
  • 举报
回复
把字体显示为下划线,然后设置click事件和鼠标形状看看行不行
熙风 2012-09-20
  • 打赏
  • 举报
回复
richtextbox 中只有是链接地址才会显示超链接形式的,,还是用LinkLable显示吧

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧