首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在vb Winform上创建非模式/锁定消息框?

如何在vb Winform上创建非模式/锁定消息框?
EN

Stack Overflow用户
提问于 2018-12-19 05:02:42
回答 3查看 1.9K关注 0票数 1

我继承了一些非常混乱的VB.Net代码,我必须对其进行一些更改,并且不确定如何处理:

有一个窗体,它显示一个Browser.WebBrowser1窗口,然后从主窗体中弹出一个带有Yes/No按钮的MessageBox。当此消息框弹出时,它是模式的,最终用户无法浏览浏览器窗口中显示的数据。

我怎样才能以非模态的方式完成同样的事情呢?

Messagebox弹出代码:

代码语言:javascript
复制
  resultYESNO = MessageBox.Show(Me, questionText, "DisputeHandler Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                If resultYESNO = DialogResult.Yes Then
                    columnValue = "Y"
                ElseIf resultYESNO = DialogResult.No Then
                    columnValue = "N"
                End If
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-19 05:26:13

您可以使用带有标签的面板控件(用于显示警告消息),而不是使用模式/锁定消息框。保持面板隐藏(visible=false),直到您想要显示消息。

票数 1
EN

Stack Overflow用户

发布于 2018-12-19 06:22:14

MessageBox.Show始终显示模式对话框。如果您不想要模式对话框,那么您需要创建自己的带有适当控件的窗体,然后可以通过调用Show来显示它。

如果您将当前表单作为所有者传递,即调用Show(Me),那么您将创建一个真正的非模态对话框,即不会阻止对调用者的访问,但会保留在调用者的顶部,并将最小化、恢复并关闭调用者。

由于对话框不是模式对话框,因此不能将要在关闭时立即执行的代码放在代码后面以显示它。您必须处理FormClosed事件并将代码放在那里。您必须将表单的DialogResult属性设置为每个ButtonClick上的相应值。

票数 1
EN

Stack Overflow用户

发布于 2018-12-19 12:03:26

如果你想使用一个自定义对话框,那么你只需要创建另一个窗体,添加yes和no按钮和其他控件即可。当显示表单(自定义MessageBox)时,使用Form.ShowDialog(),将Form替换为您的表单名称。在关闭自定义消息框之前,使用Form.ShowDialog将禁用与主窗体的交互。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53841008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档