提问人:forefie 提问时间:11/16/2023 更新时间:11/16/2023 访问量:47
如何阻止用户编辑富文本框中的文本?
How can I stop the user being able to edit text in a richtextbox?
问:
我有一小段代码,它动态地向 tablelayoutpanel 的每个单元格添加一个 richtextbox,但用户应该无法编辑其中的文本。
RichTextBox[,] textList = new RichTextBox[4, 4];
for (int a = 0; a < 4; a++)
{
for (int b = 0; b < 4; b++)
{
RichTextBox newBox = new RichTextBox { Dock = DockStyle.Fill, Text = "2", BackColor = Color.AntiqueWhite, BorderStyle = BorderStyle.None, SelectionAlignment = HorizontalAlignment.Center, Font = new Font("Arial", 36, FontStyle.Bold), SelectionProtected = true };
textList[a, b] = newBox;
tableLayoutPanel1.Controls.Add(newBox, a, b);
}
}
我尝试使用 SelectionProtected = true,但它不会阻止用户单击和编辑文本,并且 Enabled = true 使文本显示为灰色。
答:
4赞
Jackdaw
11/16/2023
#1
您可以将属性设置为:ReadOnly
true
newBox.ReadOnly = true;
textList[a, b] = newBox;
评论
0赞
forefie
11/17/2023
ReadOnly = true 非常适合阻止用户编辑文本,谢谢。有什么方法可以阻止他们选择它吗?我仍然可以单击文本框以显示闪烁的栏。
0赞
Jackdaw
11/17/2023
@forefie:您可以使用 和 set 的事件处理程序或查看以下帖子: 禁用 RichTextBox 或 TextBox 中的选择突出显示SelectionChanged()
RichTextBox
SelectionLength = 0;
评论
Enabled = false
Enabled = false
ReadOnly