【发布时间】:2014-07-04 05:50:08
【问题描述】:
我正在对 TextBox 验证事件进行数据库验证。如果数据无效,我也在使用 e.Cancel = True 。问题是验证事件被触发两次,最终导致 SQL 也运行两次,我不希望这种情况发生(因为有时查询是资源密集型的)。
步骤:
- 将 RadTextBox 和 RadLabel 拖放到表单中。
- 对于 RadTextBox 验证事件,请使用以下代码。
- 运行应用程序,聚焦 RadTextBox,然后单击标签。然后,如果您检查 Visual Studio 的输出窗口,您会注意到控制台已记录验证事件实际上被触发了两次。 (该事件仅在我尝试单击 RadButton 或 RadLabel 时运行两次)
我在 SQL Server Profiler 中检查查询时注意到了这个错误,并且查询被执行了两次,这是不必要的。我还检查了实际的 wincontrols,但其中不存在此问题。
我该如何解决这个问题?
这里是复制行为的示例代码
Private Sub RadTextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles RadTextBox1.Validating
Console.WriteLine("VALIDATING EVENT TRIGGERED")
e.Cancel = True
End Sub
【问题讨论】: