MessageBox 自动继续,无需按下按钮

MessageBox continues automatically without pressing on button

我有一个带有两个按钮和一个文本的消息框。 这是相关代码:

var result = MessageBox.Show("just a text","just a title",MessageBoxButtons.OKCancel,System.Windows.Forms.MessageBoxIcon.Warning,System.Windows.Forms.MessageBoxDefaultButton.Button1, System.Windows.Forms.MessageBoxOptions.ServiceNotification | System.Windows.Forms.MessageBoxOptions.RightAlign);
if (result == DialogResult.OK)
{
    ... code ...
}

我的问题是程序自动在 "if" 中输入代码,弹出消息框甚至不显示。 即使在我调试它时,我也看到代码转到了 "if" 行,结果是 DialogResult.OK.

我正在使用 Web 表单和 ASP.Net。

MessageBox 的命名空间是 "System.Windows.Forms"。

我尝试清除缓存甚至 iisreset。

还有什么可以帮助我的?

提前致谢。

I am using web forms and ASP.Net.

the namespace for the MessageBox is "System.Windows.Forms".

不要那样做。 ASP.NET 站点在服务器上运行,因此没有人可以单击 MessageBox,即使它会在服务器上弹出。

如果您想向用户显示弹出窗口,则必须在 Javascript 中。参见 How to make a simple yes/no popup in ASP.NET that return the result back to my c#?

这里有两个问题。 在代码逻辑上,MessageBoxShow方法是和主线程并发的。所以当运行 Show 方法立即运行后的代码,主线程不等待答案! 如果想做主线程等待关闭消息,应该使用MessageBox的ShowDialog函数。 (MSDN Reference)

但是现在你在ASP工作,这和Windows有很大的不同,正如我们亲爱的朋友CodeCaster也说过的,ASP服务器端不是客户端!所以您的消息将显示在服务器系统上,而不是在浏览您网站的用户系统上!