2011-07-19 41 views
-1

下面是我的代码,关闭页面加载弹出窗口也我想向用户显示一个消息框PLZ登录以及我的弹出窗口变得接近,但它在屏幕上闪烁是否有任何方法来阻止做那。弹出窗口闪烁

StringBuilder sb = new StringBuilder(); 
sb.Append("<script>"); 

sb.Append("window.close();"); 

sb.Append("</script"); 

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "test", sb.ToString(), false); 

MessageBox.Show("Please Sign In first...", "Login Message", MessageBoxButtons.OK, MessageBoxIcon.Question); 
return; 
+0

更多标签请 – Snowbear

回答

1

你的代码没有意义。你打电话给RegisterClientScriptBlock,很明显你在使用ASP.NET WebForms。但你也试图拨打MessageBox.Show(看起来像WinForms版本)。你不得不从同一个代码库中使用这两个框架,这是有原因的:它们不是一起工作的。

如果您使用ASP.NET,这意味着您的C#代码在Web服务器计算机上作为Windows服务运行。这意味着,如果用户访问您的网站,您将尝试在服务器机器(位于某处锁定的服务器机房)上显示对话框。您网站的访问者在他们的电脑上看不到任何东西。实际上,由于IIS作为非交互式服务运行,我认为对MessageBox.Show的调用将被忽略。

在访客机器上运行的唯一代码是由您的ASP.NET页面生成的HTML和JavaScript。如果你想向用户显示一个对话框,你需要使用JavaScript。最简单的方法是致电window.alert()

+1

在最好的情况下,它被忽略。最坏的情况是,它会弹出一个永远不会被确认的消息框,从而有效地挂起系统。除桌面客户端应用程序外,不惜任何代价避免使用“MessageBox.Show”。 –