如果事件没有发生,我怎么能执行一个事件?
例如,如何在不单击按钮的情况下在代码中执行button1_Click()
事件?
问题是我有一个WebClient
,它会加载文件列表。
每次完成下载文件时,它都会执行DownloadFileCompleted
事件,然后下载下一个文件。
但是,某些文件没有下载(全部在计划中),因此不会执行该事件。我怎么能执行它? 感谢
答案 0 :(得分:7)
只需将事件处理程序中存在的所有代码插入单独的函数中,例如
private void button1_click(...)
{
func(...)
}
public void func(...)
{
//even handler code
}
如果你没有举起什么活动,或者不能,请致电
func(...)
我个人反对明确地调用事件处理程序,但更喜欢这种方法。 对我来说似乎更清晰的代码结构。
答案 1 :(得分:1)
你可以只为它提供空值并将其称为普通函数(毕竟,它是一个普通函数,只需要一个发送者和相应的事件参数)。 E.g。
button_click(new object(), new System.EventArgs());
这些是标准GUI按钮的正常事件,您的按钮可能需要不同的事件。如果您只需要按钮来检测点击并且不想使用事件参数,则此方法有效。
答案 2 :(得分:1)
控件通常具有引发事件的能力,例如在您的情况下Button.PerformClick
答案 3 :(得分:0)
button1_Click()只是一个方法,所以即使你将它绑定到一个事件,你也可以执行它。
答案 4 :(得分:0)
您应该将代码移出事件处理程序并转移到函数中。
然后,您可以从事件和触发它所需的任何其他方法调用此函数。
所以而不是:
private void button1_Click()
{
//do something
}
你有:
private void button1_Click()
{
doSomething();
}
public void doSomething()
{
//do something
}
答案 5 :(得分:0)
如果您的按钮名称是 button1 ,您可以按照以下代码行提出点击事件:
button1.PerformClick();
希望这有帮助!
修改强>
或者像其他人所说的那样,将你的逻辑放在一个单独的方法中,并在需要时调用该方法。