【发布时间】:2018-03-22 05:02:18
【问题描述】:
我正在使用 Windows 窗体 RichTextEditBox。我将一个 RTF 文件加载到控件中。然后我设置以下代码。
int indexToText = rteb.Find("here");
LinkLabel link = new LinkLabel();
link.Text = "here";
link.LinkBehavior = LinkBehavior.AlwaysUnderline;
link.LinkClicked += new
LinkLabelLinkClickedEventHandler(this.link_LinkClicked);
LinkLabel.Link data = new LinkLabel.Link();
data.LinkData = "Sending Report Results to Multiple Recipients.pdf";
link.Links.Add(data);
link.AutoSize = true;
link.Location = rteb.GetPositionFromCharIndex(indexToText);
link.Height = 40;
link.Width = 60;
link.ForeColor = Color.Blue;
rteb.Controls.Add(link);
当应用程序运行时,“这里”这个词是蓝色的,但我没有下划线,当我尝试点击这个词时,我的点击事件不会触发。我在这里错过了什么?
【问题讨论】:
-
使用 LinkLabel 提供 URL,类似于您在浏览器中使用的 URL。存储在未知目录中的 pdf 文件无法帮助浏览器显示它。考虑 file://c:\foo\bar\baz.pdf,但也要考虑到您的用户可能不喜欢使用他的浏览器来阅读 pdf 文件。 Process.Start() 是一个不错的选择。
-
对不起,我没有显示我的 LinkClicked 事件,但我正在使用 Process.Start() 来显示 pdf 文件。但这不是问题。问题是当我点击“这里”这个词时,什么也没有发生。它不像链接。不会触发 LinkClicked 事件。
标签: c# .net winforms richtextbox linklabel