如何更改禁用的多行TextBox的前景?

时间:2013-12-04 06:38:10

标签: c# winforms textbox

我有一个多行文字框。如何在禁用前更改前色?

我喜欢这里的解决方案 Change a textbox colour when disabled C#

但是,当MultiLine为真时,找出当前可见的文本部分(即当前可见的行和字符)有点复杂。

那么任何人都知道如何使用WM_CTLCOLOREDIT和WM_CTLCOLORSTATIC消息来改变C#.NET中文本框的前色? 要么 如何更改已禁用的文本框的前景颜色而不覆盖

OnPaint()    

方法?

3 个答案:

答案 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,并根据需要设置foregroundbackground种颜色。如果您希望用户无法对其进行聚焦,则使用事件textBox.Focused检测其聚焦,随着事件的发展,通过编程将任何其他控件设置为聚焦。