如何为Property
中定义的自定义UserControl
添加验证码。请考虑以下代码:
public class Date
{
private int month = 7; // Backing store
public int Month
{
get
{
return month;
}
set
{
if ((value > 0) && (value < 13))
{
month = value;
}
}
}
}
它会检查Month
值是否在1到12之间,但我想要显示无效输入消息,以防它无效。有什么想法吗?
答案 0 :(得分:2)
如果值不在1到12之间,你可以扔掉,例如一个InvalidOperationException
并在主线程中处理它。
public int Month
{
get
{
return month;
}
set
{
if ((value > 0) && (value < 13))
{
month = value;
}
else throw new InvalidOperationException("Invalid month");
}
}
然后就像......
private void textBox1_Validating(object sender, CancelEventArgs e)
{
try
{
date.Month = Convert.ToInt32(textbox1.Text);
}
catch(InvalidOperationException ex)
{
e.Cancel = true;
textBox1.Select(0, textBox1.Text.Length);
// some message about invalid value
}
}
其中textBox1_Validating
是文本框的验证事件处理程序。