如何禁用编辑RichTextBox的第一行?

时间:2018-08-13 08:22:06

标签: c# winforms richtextbox

我通过

设置Richtextbox的第一行
RichTextBox.text = "Comment:";

我希望这行是只读的,并从第二行输入,并从第二行开始获取文本。

有任何建议吗?谢谢!


谢谢,我添加了一个MouseClick事件来禁止第一行可编辑:

 private void CommentTxtBox_MouseClick(object sender, MouseEventArgs e)
    {
        int index = _commentTxtBox.SelectionStart;
        int line = _commentTxtBox.GetLineFromCharIndex(index);
        if (line == 0)
        {
            _commentTxtBox.ReadOnly = true;
        }
        else
            _commentTxtBox.ReadOnly = false;

    }

2 个答案:

答案 0 :(得分:3)

您可以使用SelectionProtected

  

获取或设置一个值,该值指示当前文本选择是否为   受保护的。

例如,您在控件中有“注释:”,用户可以在其后添加文本,但不能删除您的文本。

因此,我将ReadOnly设置为前7个字符,并添加一个换行符,其余控件将变为可修改状态:

RichTextBox.Select(0, "Comment:".Length);
RichTextBox.SelectionProtected = true;
RichTextBox.AppendText(Environment.NewLine);

答案 1 :(得分:0)

您可以尝试以下方法:

private void richTextBox1_SelectionChanged(object sender, EventArgs e)
{
    int line = richTextBox1.GetLineFromCharIndex(richTextBox1.SelectionStart);
    richTextBox1.ReadOnly = line == 0;
}

未经严格测试;它只允许您在选择/光标不在第一行时进行编辑。