Richtextbox和Hyperlink的光标控制问题?
Richtextbox和Hyperlink的光标控制问题?
今天遇到一个难题,
如果你用过Richtextbox控件,你会发现,这个控件中如果包含Hyperlink(URL)字串,然后你用鼠标单击这个Hyperlink(URL)的某个字符,你会发现键盘输入光标是无法停在这个字符上的! 也就是说,如果你想要修改Hyperlink(URL)的中某个字符,其操作的复杂程度,远比修改其他普通字符要大.
目前的方法是双击这个Hyperlink(URL)字串,系统会选取包含这个字符的单词,然后使用键盘的方向键将光标移到该移的位置,再做修改。
不过这样,还是比较麻烦!
如果将 Richtextbox.DetectURL设成false,虽然可以解决问题,但是也失去了Hyperlink这个特性。显示效果会大打折扣!!!
所以说,谁有更好的,两全其美的办法解救这个问题?
我的目标是:
1。可以方便的自由编辑Hyperlink(URL)字串
2。显示上必须还是超链接的模样
3。如果对某个Hyperlink(URL)字串按 ctrl + mouseclick,会跳出系统默认浏览器。
(一个很好的模仿例子是 ms word文档中Hyperlink(URL)字串的表现形式,我要的就是它这样的效果)
谢谢!
------解决方案--------------------private void Form1_Load(object sender, EventArgs e)
{
this.richTextBox1.DetectUrls = false;
}
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.ControlKey)
{
richTextBox1.DetectUrls = true;
}
}
private void richTextBox1_KeyUp(object sender, KeyEventArgs e)
{
richTextBox1.DetectUrls = false;
}