RichTextBox的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RichTextBox的问题相关的知识,希望对你有一定的参考价值。

做了一个软件,涉及到模板的问题,在模板内容里,我用来标记选择项,比如:重庆,又名山城、雾都。
最开始我用LABEL控件数组来存放这些文字,如用将“重庆,又名”存放在label1(0)中,将“山城”存放在label1(1)中,将“、”存放在label1(2)中,将“雾都”存放在label1(3)中,将“。”存放在label1(4)中。里的文本内容和外面的文本内容用颜色区分开来,单击里的任何位置时,里的文本选中。但是这样做,会涉及到用户删除模板中的文本内容时不是很方便,用户添加文本时,又要去移动每个Label控件。
于是,想到用RichTextBox控件。我用一个二维数组来存放里文本内容的selStart以及里文本的长度。不过在单击使里的文本颜色变化之前,如果用户对文本进行了编辑(添加、删除、剪切、粘贴等),那么二维数组里存放的selStart就相应的应该改变,那么我怎么去获取用户编辑时添加、删除、剪切、粘贴的文本的文本长度?
还有我想让用户在里不能进行文本编辑功能,这个该怎么做呢?
如果RichTextBox控件不能达到这些功能,那么我该怎么去实现上面所说的功能呢。

参考技术A 只需用richtextbox
Private Sub RichTextBox1_Click()
On Error Resume Next
a = InStrRev(RichTextBox1.Text, "", RichTextBox1.SelStart)
b = InStr(RichTextBox1.SelStart, RichTextBox1.Text, "")
If InStr(1, Mid(RichTextBox1.Text, a + 1, b - a - 1), "") = 0 And InStr(1, Mid(RichTextBox1.Text, a + 1, b - a - 1), "]") = 0 Then
RichTextBox1.SelStart = a
RichTextBox1.SelLength = b - a - 1
RichTextBox1.SetFocus
RichTextBox1.Locked = True
Else
RichTextBox1.Locked = False
End If
End Sub

以上是关于RichTextBox的问题的主要内容,如果未能解决你的问题,请参考以下文章

C# RichTextBox字体居中问题

C# richtextbox背景设置成透明后,如何能看到richtextbox内录入的内容

WPF richtextbox问题

检测 RichTextBox 中插入符号位置何时更改

在 RichTextBox 中显示特殊字符(韩文字母)

如何使用 RichTextBox 消除烦人的 BEEP