我发现如果C#中调用
MessageBox.Show("test");我没有指定Owner, 系统还是会默认分配当前active的窗口(例如:Form1)作为这个MessageBox的Owner.这样导致的后果是:如果系统对Form1执行Close()方法,那个无辜的MessageBox也会被强行关掉。我现在需要,无论那个窗口被关闭,MessageBox窗口不要受到影响,不要自动关掉。我所想到的是一个方法是-不要让MessageBox归任何窗口的所有,但我不知道程序怎么写?
或则,大家有什么更好的办法吗?我现在需要,无论那个窗口被关闭,MessageBox窗口不要受到影响,不要自动关掉。
MessageBox.Show("test");我没有指定Owner, 系统还是会默认分配当前active的窗口(例如:Form1)作为这个MessageBox的Owner.这样导致的后果是:如果系统对Form1执行Close()方法,那个无辜的MessageBox也会被强行关掉。我现在需要,无论那个窗口被关闭,MessageBox窗口不要受到影响,不要自动关掉。我所想到的是一个方法是-不要让MessageBox归任何窗口的所有,但我不知道程序怎么写?
或则,大家有什么更好的办法吗?我现在需要,无论那个窗口被关闭,MessageBox窗口不要受到影响,不要自动关掉。
不过我需要的是模式消息框。我试过message1.showDialog();
结果是一样的。 :(
MessageBoxOptions.ServiceNotification 这个是全局的
我试过,做一个新的 Form 把它弄成跟 消息框 一个样,如果是模式窗口的话, 运行的结果也是一样的。如果我不对,你能给我一段例程看看吗?
谢谢!这个我也试过了,可以的。但是,产生另外一个问题,当messagebox打开的时候,其他窗体就算执行了Close()方法,也关不掉了。一直要等到messagebox关闭后,才行。
谢谢!这个我试过了,可以基本符合要求的。但是,产生另外一个问题,当messagebox打开的时候,其他窗体就算执行了Close()方法,也关不掉了。一直要等到messagebox关闭后,才行。
{
Thread t = new Thread(ShowBox);
t.Start();
} private void ShowBox()
{
MessageBox.Show("ShowDialog");
}