我的项目包含多种形式,并希望以某些我无法实现的模态规则打开它。
首先,这里是主要形式“Form1”,然后是“Form11”和“Form111”,“Form12”和“form121”
从主窗体“Form1”开始,我只能以这样的形式开始“Form11”和“Form12”:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form11.Show()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Form12.Show()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Me.Close()
End Sub
End Class
在这种情况下,当显示“Form11”和“Form12”时,我可以通过按“Form1”上的Button4轻松退出应用程序,这将关闭所有表格。
现在,这是另一种形式,“Form111”,我通过单击“Form11”上的按钮以模态方式打开...
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim f As New Form111
f.ShowDialog(Me)
f = Nothing
End Sub
在这里,我对我的项目有一些误解或误解。
当“Form111”被打开时,我喜欢阻止“Form11”而不是“Form1”,我想(说)打开“Form2”或退出申请,其中模式形式“Form111”在非模式“Form11”上是打开。
是否可以通过描述的项目配置以及如何实现此类功能?
答案 0 :(得分:1)
首先,第一个块中按钮点击的代码可能不正确。如果表单的名称为Form11
且Form12
为其类名。它们应该像Form111
一样实例化。
应用程序关闭的原因是因为该表单(Me)被设置为启动表单。如果/何时关闭,应用程序结束。您可以将应用程序更改为在项目属性中关闭最后一个表单时退出。
至于你的问题,要有一个对话框“阻止”"Form11" but not "Form1"
,答案是否定的。表单可以是Modal
(您称之为“阻止”)或Modeless
。您可以告诉Form111保持最佳状态,但它不会“阻止”任何其他形式。
您要做的事情表明,这些表单上的操作可能没有按照需要进行组织或计划。