C#,Windows Form,Messagebox在上面不起作用
发布时间:2020-12-15 18:28:05 所属栏目:百科 来源:网络整理
导读:我有一些MessageBox,我的代码如下: MessageBox.Show(new Form(){TopMost=true,TopLevel=True},"Message","Title",MessageBoxButtons.YesNo,MessageBoxIcon.Warning); 为了更好的示例,我为FormClosing事件执行此操作: private void Example_FormClosing(obj
我有一些MessageBox,我的代码如下:
MessageBox.Show(new Form(){TopMost=true,TopLevel=True},"Message","Title",MessageBoxButtons.YesNo,MessageBoxIcon.Warning); 为了更好的示例,我为FormClosing事件执行此操作: private void Example_FormClosing(object sender,FormClosingEventArgs e){ MessageBox.Show(new Form(){TopMost=true,"Really close?"," Program",MessageBoxButtons.OKCancel,MessageBoxIcon.Information); } 但是,几乎每次我都要在我的计算机上更改Window(比如返回Visual Studio),然后才能看到我的消息框,而且这不是用户友好的,而且非常烦人. 我确认我的主要表单不在TopMost = true中,我只尝试了TopMost或只是TopLevel,StartPosition = FormStartPosition.CenterScreen但没有任何效果. [更新] 我试过了: private void Example_FormClosing(object sender,FormClosingEventArgs e){ MessageBox.Show(this.Owner,MessageBoxIcon.Information); } 我想把我的messageBox放在我的窗口前面而不必更改窗口来查看它,因为它就像在当前窗口后面. 你有想法解决这个问题吗? 解决方法
给定一个Form的实例,你可以像这样调用一个MessageBox:
MessageBox.show(表单,“消息”,“标题”); ( Check the doc for other parameters.) 但是,如果你想从后台线程(例如:BackgroundWorker)调用它,你必须像这样使用Form.Invoke(): form.Invoke((MethodInvoker)delegate { MessageBox.show(form,"Title"); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |