我继承了一些非常混乱的VB.Net代码,我必须对其进行一些更改,并且不确定如何处理:
有一个窗体,它显示一个Browser.WebBrowser1窗口,然后从主窗体中弹出一个带有Yes/No按钮的MessageBox。当此消息框弹出时,它是模式的,最终用户无法浏览浏览器窗口中显示的数据。
我怎样才能以非模态的方式完成同样的事情呢?
Messagebox弹出代码:
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
发布于 2018-12-19 05:26:13
您可以使用带有标签的面板控件(用于显示警告消息),而不是使用模式/锁定消息框。保持面板隐藏(visible=false),直到您想要显示消息。
发布于 2018-12-19 06:22:14
MessageBox.Show
始终显示模式对话框。如果您不想要模式对话框,那么您需要创建自己的带有适当控件的窗体,然后可以通过调用Show
来显示它。
如果您将当前表单作为所有者传递,即调用Show(Me)
,那么您将创建一个真正的非模态对话框,即不会阻止对调用者的访问,但会保留在调用者的顶部,并将最小化、恢复并关闭调用者。
由于对话框不是模式对话框,因此不能将要在关闭时立即执行的代码放在代码后面以显示它。您必须处理FormClosed
事件并将代码放在那里。您必须将表单的DialogResult
属性设置为每个Button
的Click
上的相应值。
发布于 2018-12-19 12:03:26
如果你想使用一个自定义对话框,那么你只需要创建另一个窗体,添加yes和no按钮和其他控件即可。当显示表单(自定义MessageBox)时,使用Form.ShowDialog()
,将Form
替换为您的表单名称。在关闭自定义消息框之前,使用Form.ShowDialog
将禁用与主窗体的交互。
https://stackoverflow.com/questions/53841008
复制相似问题