我使用富文本框作为我的应用程序的标签。文本框是只读的,但可以选择其内容。如何使用户无法在只读文件框中选择富文本框中的文本?
当我禁用控件时无法选择文字但我会松开颜色,因为它们变为灰色(禁用)。如何在不禁用富文本框控件的情况下禁用文本选择?
仅供参考:我使用富文本框作为标签,因为我需要将字符串中的一个单词的前颜色更改为红色,这需要向用户显示。我使用this SO文章和以下方法来执行此操作。
string word = "red";
int start = richTextBox1.Find(word);
if (start >= 0) {
richTextBox1.Select(start, word.Length);
richTextBox1.SelectionColor = Color.Red;
}
编辑: BTW这是C#WinForm
答案 0 :(得分:2)
只需处理选择,并将其恢复为“无”:
// so you have colour (set via the Designer)
richTextBox.Enabled = true;
// so users cannot change the contents (set via the Designer)
richTextBox.ReadOnly = true;
// allow users to select the text, but override what they do, IF they select the text (set via the Designer)
richTextBox.SelectionChanged += new System.EventHandler(this.richTextBox_SelectionChanged);
// If the user selects text, then de-select it
private void richTextBox_SelectionChanged(object sender, EventArgs e)
{
// Move the cursor to the end
if (this.richTextBox.SelectionStart != this.richTextBox.TextLength)
{
this.richTextBox.SelectionStart = this.richTextBox.TextLength;
}
}
(顺便说一下,of searching还有很长的路要走。)