Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过按键引发验证事件_C#_.net_Winforms - Fatal编程技术网

C# 如何通过按键引发验证事件

C# 如何通过按键引发验证事件,c#,.net,winforms,C#,.net,Winforms,我想提出: private void txtbox_startdate_Validating(object sender, System.ComponentModel.CancelEventArgs e) {} 来自钥匙离开事件的函数。休假事件看起来像: private void txtbox_startdate_Leave(object sender, EventArgs e) {} 问题当然是如果我试着这样称呼它: txtbox_startdate_Validating(

我想提出:

private void txtbox_startdate_Validating(object sender, System.ComponentModel.CancelEventArgs e)
    {}
来自钥匙离开事件的函数。休假事件看起来像:

private void txtbox_startdate_Leave(object sender, EventArgs e)
    {}
问题当然是如果我试着这样称呼它:

txtbox_startdate_Validating(sender, e)

出现错误是因为在这种情况下,
e
是一个
EventArg
s,而验证函数需要一个
System.ComponentModel.CancelEventArgs
等等,如何将
EventArgs
转换为
System.ComponentModel.CancelEventArgs
或创建一个,以便调用验证函数?

通常,无论验证程序是什么,您都可以对其调用Validate(),而不是执行此操作

否则,只需“新建”canceleventargs本身-这并不特别,构造函数是公共的

参见MSDN:


您无需从
txtbox\u startdate\u Leave
事件调用
txtbox\u startdate\u Validating
事件(或任何其他具有验证事件的控件),因为作为设计的一部分,事件的顺序是从一个事件到另一个事件。

,通过抛出异常,在本例中忽略异常,但我想知道是否有更“优雅”的解决方案,或者其他什么!Winforms问题-webforms验证程序不适用。