我有一个带有两个按钮和一个文本的消息框。 这是相关的代码:
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 ...
}
我的问题是程序输入"中的代码;如果"自动弹出消息框甚至不显示。 即使我调试它,我看到代码进入"如果"行,结果是DialogResult.OK。
我正在使用网络表单和ASP.Net。
MessageBox的命名空间是" System.Windows.Forms"。
我尝试清除缓存甚至是iisreset。
还有什么可以帮到我?
提前谢谢。
答案 0 :(得分:7)
我正在使用网络表单和ASP.Net。
MessageBox的命名空间是“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#?。
答案 1 :(得分:0)
这里有两个问题。 在代码逻辑中,MessageBox Show 方法与主线程并发。因此,当运行代码后立即运行显示方法时,主线程不会等待答案! 如果你想成为主线程等待关闭消息,你应该使用MessageBox的 ShowDialog 功能。 (MSDN Reference)
但是现在你在ASP工作,这与Windows非常不同,因为我们亲爱的朋友CodeCaster也说,ASP服务器端不是客户端!因此,您的消息将显示在服务器系统上,而不是显示在正在观看您的网站的用户系统上!