如何打开弹出窗口 window 来警告用户并在后台打开 运行?

How can I open a popup window to alarm user and running in background?

我需要在下雨时通过打开弹出窗口 window 来提醒用户,并通过按下按钮获得 him\her 反馈以确保 he\she 知道天气状况。但我希望我的代码 运行 的其他行在后台。换句话说,我正在寻找一种解决方案,它不会导致程序停止,直到用户按下按钮。我使用 Visual studio 2013 WinForms。谢谢大家。

不过我不确定您的确切要求是什么

Messagebox.show 显示一个名为 'modal' 的 messagebkx,这意味着当它打开时您无法与另一个 windows 互动。要有一个非模态消息框,请尝试创建一个新表单并使用 messagebox.show 来显示它。 您必须创建一个表单并使用 Show() 来显示。

请注意,使用 messagebox.show 您会在 messagebox 关闭后立即获得结果,非模态消息框不会执行此操作,您需要编写一些代码来处理这种情况作为一个事件。

如果不是活动,您可能要查找的是 async await

Asyncawait 是两个 C# 关键字,更多信息可以在此处的 Microsoft 文档中找到:http://msdn.microsoft.com/en-us/library/hh191443.aspx

如果您创建一个名为 showDialogAsync()async 方法来等待用户结果,然后在新线程上等待它,您将得到以下结果:

您的程序 运行ning 正常 满足条件,需要显示对话框 showDialogAsync 被调用并等待。 Showdialogasync 等待用户输入。 控制返回到调用 showDialogAsync 的方法 当用户点击一个按钮时,调用方法上的 await 之后的代码将 运行。

此图显示了某些 async 代码中的控制流,可能会有所帮助: http://i.msdn.microsoft.com/dynimg/IC612215.png