2009-08-21 108 views
2

在.NET WinForms应用程序中创建按钮的实例时,.CausesValidation属性设置为True。为什么会假设所有按钮都会引发验证事件?这不意味着,默认情况下,只要按钮只获得焦点,带有_Validating事件的窗体上的所有控件都会调用该事件。为什么.CausesValidation按钮默认设置为True?

是不是获得焦点在一个小按钮上提前来调用验证事件?特别是默认?按钮点击似乎是验证发生的更合适的默认时间。

我问,因为我想确定我正确理解WinForms验证模式。

回答

3

我猜这是两个邪恶中最安全的。通常按钮处理数据;通过这种方式,如果你什么也不做,默认情况是你的数据被验证,如果你实际上不想验证它,它将是非常明显的(因为它不起作用)。

与替代方案相比 - 你什么都不做,并且你的按钮静静地成功地对无效数据执行操作,并且你没有注意到,因为它很微妙。

第一种可能更安全,即使它确实会引起一些刺激。

相关问题