我有一个多行文字框。如何在禁用前更改前色?
我喜欢这里的解决方案 Change a textbox colour when disabled C#
但是,当MultiLine为真时,找出当前可见的文本部分(即当前可见的行和字符)有点复杂。
那么任何人都知道如何使用WM_CTLCOLOREDIT和WM_CTLCOLORSTATIC消息来改变C#.NET中文本框的前色? 要么 如何更改已禁用的文本框的前景颜色而不覆盖
OnPaint()
方法?
答案 0 :(得分:0)
而不是使用textbox的enabled属性为什么不使用keypress事件
private bool isDisabled = false;
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (isDisabled == true)
{
e.KeyChar = (char)0;
}
}
每次我禁用= true
时你都可以改变前面的颜色希望它有助于
答案 1 :(得分:0)
您可以这样做:
richTextBox1.ForeColor = System.Drawing.Color.Red
或者如果你想使用黑色,你必须使用这个技巧:
richTextBox1.ForeColor = System.Drawing.Color.FromArgb(0,0,0);
答案 2 :(得分:-1)
你为什么不简单?
启用textBox
,并根据需要设置foreground
和background
种颜色。如果您希望用户无法对其进行聚焦,则使用事件textBox.Focused
检测其聚焦,随着事件的发展,通过编程将任何其他控件设置为聚焦。