c#中的部分只读文本框

本文关键字:只读 文本 | 更新日期: 2023-09-27 18:04:20

我有一个非法位置和字符不能从这些位置移动的列表。我如何防止那些被修改在TextChanged事件?我想出的每一个解决方案都是非常黑客和不可靠的,或者依赖于KeyDown事件,这并不能阻止用户以其他方式删除只读文本(选择文本并删除它,或者只是按退格键)。

我想过这样做:

//CharPos is a class with an int (CharPos.Position) and a char that 
//should be at that int's position (CharPos.Ch)
foreach (CharPos p in IllegalPositions)
{
    console.Text = console.Text.Remove(p.Position, 1);
    console.Text = console.Text.Insert(p.Position, p.Ch.ToString());
}

但是它完全搞砸了,进入了一个无限循环。即使我阻止它这样做,如果你改变文本的字符数,它也不会工作,比如通过使用删除键。也许我可以用正则表达式?(我不知道,我完全没有使用正则表达式的经验)

c#中的部分只读文本框

可以将多个textbox(用于可编辑部分)与textblock(用于只读部分)组合在一起吗?您只需要使用这两个样式来匹配

请查看下面的链接:

禁用或使其成为文本框中值的一部分

rtBox.Select(0, (rtBox.Text = "I am fixed content").Length);
rtBox.SelectionProtected = true;
rtBox.AppendText(Environment.NewLine);