我正在开发一个 C# 应用程序来与 MUD/MOO 服务器通信。基本上它需要文本并将其显示在屏幕上。目前我正在使用 RichTextBox 来显示文本,并且我的彩色文本工作正常,我只需要实现 URL,但是在执行此操作时我发现添加带有自定义文本的 URL(例如,不是 http://,比如:点击这里)我需要使用 Win32 API,我不能这样做......根本。这需要在 linux ( 可能还有 mac ) 上单声道工作。有没有办法使这项工作?或者我应该寻求哪些替代途径?(我正在考虑切换到 HTML,但有没有好的跨平台 HTML 控件?)(所有这些都必须是免费的)。
先谢谢了。
我最终使用以下方法做到了:
Stack<Link> Links = new Stack<Link>();
internal class Link
{
public int starts = 0;
public int ends = 0;
public string url = "";
}
private string GetLink(RichTextBox rtb, Point point)
{
int index = rtb.GetCharIndexFromPosition(point);
foreach (Link link in Links.ToArray())
if (link.starts <= index && link.ends >= index)
return link.url;
return "";
}
只需将所有链接附加到 Links 堆栈,并在 MouseDown 事件中使用 GetLink :)