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

.Net技术 码拜 8年前 (2016-09-29) 3625次浏览 0个评论

本文介绍 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 自定义控件重新绘制边框
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!