我通过
设置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;
}
答案 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;
}
未经严格测试;它只允许您在选择/光标不在第一行时进行编辑。