我正在用 C# 制作一个 Windows 窗体项目,我在其中制作了一个继承 System.Windows.Forms.Label
的类 LabelX
,然后添加了一个属性 浮点型质量
现在,我的问题是,当 Mass
的值发生变化时,我该如何处理。
例如:
当用户输入值零
或小于零
我想发出一条消息,即“质量不能为零或负数”
最佳答案
如果我的解释是正确的,那么它有两个部分。首先,您需要检测无效值并抛出异常。其次,您需要在属性更改时引发事件。这可以通过以下方式实现。
private float mass;
public float Mass
{
get
{
return this.mass;
}
set
{
if (value <= 0.0F)
{
throw new ArgumentOutOfRangeException("Mass cannot be zero or negative.");
}
if (this.mass != value)
{
this.mass = value;
OnMassChanged(EventArgs.Empty);
}
}
}
public event EventHandler MassChanged;
protected virtual void OnMassChanged(EventArgs args)
{
var handler = this.MassChanged;
if (handler != null)
{
handler(this, args);
}
}
要在输入无效时显示一条消息,您应该在调用 set Mass
和捕获 ArgumentOutOfRangeException
。
关于c# - 如何制作自己的事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4187238/