C#W在按钮单击事件上显示更改边框样式

时间:2015-05-28 08:06:36

标签: c# winforms

我试图在按钮点击事件上更改文本框(txtUser)的边框颜色(类似于表单验证,如果输入为空,则调用将边框着色为红色的方法)。我做了一些谷歌搜索,发现了这个:

void myControl1_Paint(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, this.txtUser.ClientRectangle, Color.Black, ButtonBorderStyle.Solid);
}

但是我很难理解我应该在何处或如何调用此方法,或者使用(object sender,PaintEventArgs e)作为params的方法。任何解释都表示赞赏。

1 个答案:

答案 0 :(得分:0)

您需要从TextBox继承,然后重写OnPaint方法。这样的事情应该有效:

public class ValidateEdit : TextBox
{
    bool _InError;

    public ValidateEdit()
    {
        SetStyle(ControlStyles.UserPaint, true);
    }

    public bool InError {
        get {
            return _InError;
        }
        set
        {
            _InError = value;
            Refresh();
        }
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        if (InError)
            ControlPaint.DrawBorder(e.Graphics, this.DisplayRectangle, Color.Red, ButtonBorderStyle.Solid);
    }
}