vb如何实现只有当前窗体被关闭才能操作其他窗体

2024-11-06 20:51:54
推荐回答(5个)
回答1:

VB可通过Show方法将参数Staly设置为1以模式窗体显示当前窗体来实现当前窗体被关闭才能操作其他窗体。

Show 方法,用以显示 MDIForm 或 Form 对象。不支持命名参数。

说明

当 Show 在显示无模式窗体时,随后遇到的代码则要执行。当 Show 在显示模式窗体 (modal form)
时,则随后的代码直到该窗体被隐藏或卸载时才能执行。

当 Show
在显示模式窗体时,除了模式窗体中的对象之外不能进行输入(键盘或鼠标单击)。对其它窗体进行输入前程序必须隐藏或卸载模式窗体(通常是处于响应用户某些操作状态)。

回答2:

那叫模式窗体 显示的时候使用
Private Sub Command1_Click()
Form2.Show 1
End Sub

很简单吧 你不关闭form2 你去点form1是没效果的

回答3:

在点击完按钮弹出form2的同时,将form1.hide,在form2_unload 事件里再写入,form1.show
如果不想隐藏, 用form1.Visible =false /True 也行

回答4:

form2代码
Option Explicit

Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2

Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

然后这个是置顶,打开form2时调用:
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

关闭form2时,用这个取消置顶:
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

回答5:

Private Sub Form_Load()
Me.Show
Form2.Show 1
End Sub
你要的应该就是这个东西