Code Bye

NumericUpDown 自定义控件重新绘制边框

本文介绍 NumericUpDown 自定义控件 重绘边框 border,如何根据情况重新绘制边框,当用户输入的值无法验证通过时,将边框的颜色设置为红色。提示用户。思路主要是根据值的变化 触发重绘时间,需要重写OnValueChanged 和 OnPaint 方法。

public class NumericUpDownEx : NumericUpDown
{
bool isValid = true;
int[] validValues = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);

if (!isValid)
{
ControlPaint.DrawBorder(e.Graphics, this.ClientRectangle, Color.Red, ButtonBorderStyle.Solid);
}
}

protected override void OnValueChanged(System.EventArgs e)
{
base.OnValueChanged(e);

isValid = validValues.Contains((int)this.Value);
this.Invalidate();
}
}


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明NumericUpDown 自定义控件重新绘制边框