更改只读文本框的文本颜色c#

时间:2013-02-20 15:15:59

标签: c# textbox readonly

我有textBox1是只读的。我想改变

textBox1.ForeColor = Color.Red;

但它不起作用。有什么想法吗?

6 个答案:

答案 0 :(得分:4)

当您将TextBox控件的属性设置为ReadOnly时,文本将变为灰色。这是默认行为。

如果您需要以红色显示它,则不应设置ReadOnly属性,而应手动处理TextChanged事件并保持旧值不变。但我不推荐它。

答案 1 :(得分:1)

尝试取消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属性始终将控件灰显。这是默认行为。

答案 2 :(得分:0)

您可以对只读文本框执行的操作是(首先将其更改为读/写)您可以覆盖所述KeyPress()的{​​{1}}事件,并忽略此处的所有输入。

答案 3 :(得分:0)

这可以帮到你:

textBox1.BackColor = Color.FromKnownColor(KnownColor.Control);
textBox1.ForeColor = Color.Red;
textBox1.ReadOnly = true;

答案 4 :(得分:0)

使用RichTextBox。只读时,它将继续以彩色显示文本

答案 5 :(得分:-1)

这应该对你有帮助。

textboxname.ForeColor = Color.FromKnownColor(KnownColor.selectanycolor);