【发布时间】:2020-07-16 18:05:22
【问题描述】:
我有 textBox1,它是只读的。我正在尝试改变
textBox1.ForeColor = Color.Red;
但它不起作用。有什么想法吗?
【问题讨论】:
-
找到这个问题stackoverflow.com/questions/276179/… ,可能就是你要找的。span>
我有 textBox1,它是只读的。我正在尝试改变
textBox1.ForeColor = Color.Red;
但它不起作用。有什么想法吗?
【问题讨论】:
当您将TextBox 控件的属性设置为ReadOnly true 时,文本变为灰色。这是默认行为。
如果您需要将其显示为红色,则不应设置 ReadOnly 属性,而应手动处理 TextChanged 事件并保持旧值不变。但我不推荐它。
【讨论】:
尝试取消 KeyPress 的事件:
textBox1.Text = "Test";
textBox1.ForeColor = Color.Red;
textBox1.KeyPress += new KeyPressEventHandler(textBox1_KeyPress);
void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
ReadOnly 属性总是使控件变灰。这是默认行为。
【讨论】:
您可以对只读文本框执行的操作是(首先将其更改为读/写)您可以覆盖上述TextBox 的KeyPress() 事件并忽略从那里开始的所有输入。
【讨论】:
这应该对你有帮助:
textBox1.BackColor = Color.FromKnownColor(KnownColor.Control);
textBox1.ForeColor = Color.Red;
textBox1.ReadOnly = true;
【讨论】:
使用 RichTextBox。只读时,继续以彩色显示文本
【讨论】:
这应该对你有帮助。
textboxname.ForeColor = Color.FromKnownColor(KnownColor.selectanycolor);
【讨论】: