如何在 C# 中暂停按钮事件?

发布于 2024-07-18 13:24:26 字数 95 浏览 6 评论 0原文

在我的应用程序中,我想将按钮事件暂停一段时间,以便我可以触发另一个事件,然后第一个按钮事件将恢复。 在 C# 中,我不知道如何使用线程异步执行它。 请帮忙。 提前致谢..

In my application I want to suspend a button event for some time so that I can fire another event after which the first button event will resume. In c# I am not getting how do I perform it using threads asynchronously. Please help. Thanks in advance..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

讽刺将军 2024-07-25 13:24:26

如果您想触发第二个事件并等待其完成后再继续,那么为什么不在第一个事件处理程序中同步触发它呢? 那会简单得多。

编辑:

如果您希望一个按钮触发另一个按钮的事件处理程序中的代码,我建议您将其移到一个单独的函数中,然后调用它。 换句话说,这样做:

private void button1_Click(object sender, EventArgs e)
{
    DoButtonStuff();
}

private void button2_Click(object sender, EventArgs e)
{
    DoButtonStuff();
}

private void DoButtonStuff()
{
    // code that was originally in button2_Click()
}

如果按钮执行完全相同的操作,您甚至可以为它们分配完全相同的处理程序。

但是,如果您确实必须以编程方式“单击”按钮,那么最简单的方法可能是:

button2.PerformClick();

这将引发 Click 事件。

If you want to fire the second event and wait for it to finish before continuing, then why not just fire it synchronously from within the first event handler? That would be much simpler.

EDIT:

If you want one button to trigger the code that's in another button's event handler, I would suggest instead that you move it out into a separate function, and just call that. In other words, do this:

private void button1_Click(object sender, EventArgs e)
{
    DoButtonStuff();
}

private void button2_Click(object sender, EventArgs e)
{
    DoButtonStuff();
}

private void DoButtonStuff()
{
    // code that was originally in button2_Click()
}

If the buttons do the exact same thing, you could even just assign them the exact same handler.

But, if you really must programmatically "click" a button, then the easiest way is probably:

button2.PerformClick();

That'll raise a Click event.

苯莒 2024-07-25 13:24:26

这听起来像是您的应用程序中的设计问题,并且您从错误的一端解决了它。

This sounds like a design problem in your application and you're tackling it from the wrong end.

山人契 2024-07-25 13:24:26

你能和后台工作人员一起做点什么吗

background worker bw = new background worker


button1

while bw.inprogress
{

//kill time

}
bw.(dosomething)



button2
{
while bw.inprogress
{
//killtime

}
bw.run(dosomething)
}

could you do something with background worker

background worker bw = new background worker


button1

while bw.inprogress
{

//kill time

}
bw.(dosomething)



button2
{
while bw.inprogress
{
//killtime

}
bw.run(dosomething)
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文