【发布时间】:2012-10-13 22:44:00
【问题描述】:
当我使用 RichTextBox.Select(int start, int length) 函数在包含超链接的富文本框中选择文本时,当我尝试选择超链接之后的任何文本时,选择会发生一些变化。
当我删除超链接时,选择工作正常。
编辑: 我使用的是 RichTextBox 5(Visual Studio 中默认是版本 4)
public class RichText50W : RichTextBox
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern IntPtr LoadLibrary(string lpFileName);
protected override CreateParams CreateParams
{
get
{
CreateParams prams = base.CreateParams;
if (LoadLibrary("msftedit.dll") != IntPtr.Zero)
{
prams.ClassName = "RICHEDIT50W";
}
return prams;
}
}
}
该问题仅出现在 Richtextbox 5+ 中。
这些图片显示了问题和行为差异。
如果您尝试这样做,请确保将richtextboxes 的 HideSelection 属性设置为“false”。
选择功能显示在按钮上。
对于 RTB5,上图中“文本”中的“e”应选择。
显然 RTB5 选择了一些隐藏的文本。
我需要它仅根据可见文本进行选择。
RTB 4 在使用表格时有问题,所以我不想使用它。
我使用 .NET 2.0
编辑:要在 Visual Studio 中尝试此操作,请从默认的 Richtextbox 开始,并将其声明更改为 RichText50W 而不是 RichTextBox
RichEdit 6 也有同样的问题。
谢谢
【问题讨论】:
-
你确定吗?我已经测试过了,它运行良好,你能发布你的代码吗?
-
我用图片和更多细节更新了问题。
标签: c# winforms richtextbox selection rtf