我试图在按钮点击事件上更改文本框(txtUser)的边框颜色(类似于表单验证,如果输入为空,则调用将边框着色为红色的方法)。我做了一些谷歌搜索,发现了这个:
void myControl1_Paint(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, this.txtUser.ClientRectangle, Color.Black, ButtonBorderStyle.Solid);
}
但是我很难理解我应该在何处或如何调用此方法,或者使用(object sender,PaintEventArgs e)作为params的方法。任何解释都表示赞赏。
答案 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);
}
}