vb中的Mdi子窗体不能正确读取另外一个子窗体的visible属性
一旦读取,无论被读取的窗体是不是可见的,都会显示出来并返回True具体情况如下
现有mdi主窗体一个,子窗体2个Form1和Form2Form1中有一个按钮,代码如下Option ExplicitPrivate Sub Command1_Click() If Form2.Visible Then
MsgBox "ccc"
End IfEnd Sub
这时无论Form2如果是可见的,则直接返回True,问题在于如果此时Form2是不可见的,则会被显示出来再返回True不知道有什么方法解决,麻烦大家看看,谢谢
一旦读取,无论被读取的窗体是不是可见的,都会显示出来并返回True具体情况如下
现有mdi主窗体一个,子窗体2个Form1和Form2Form1中有一个按钮,代码如下Option ExplicitPrivate Sub Command1_Click() If Form2.Visible Then
MsgBox "ccc"
End IfEnd Sub
这时无论Form2如果是可见的,则直接返回True,问题在于如果此时Form2是不可见的,则会被显示出来再返回True不知道有什么方法解决,麻烦大家看看,谢谢
如果是这样
form2.show
msgbox("ccc")
Private Sub Command1_Click()
Dim frm As Form
For Each frm In Forms
If frm.Name = "Form2" Then
MsgBox "ccc"
End If NextEnd Sub
看4楼
Private Sub Command1_Click()
Dim frm As Form
For Each frm In Forms
If frm.Name = "Form2" Then
If Form2.Visible Then
MsgBox "ccc"
End If
end if
NextEnd Sub
那为什么非mdi窗体就没有这种问题?
如果是 Form2.Show那么就可以看
如果用Dim Frm as New Form2.Show
那么需要判断的是Frm,如果这种方式打开多次
需要用Private Sub Command1_Click()
Dim frm As Form
For Each frm In Forms
If Typeof frm is Form2 and frm.Visible=True Then
MsgBox "ccc"
End If
Next
End Sub
NewForm.Caption = "New Form" '.‘按引用装载窗体’。由于所有子窗体在装载时都可视,对 Caption 属性的引用将装载该窗体并使其可视。
Private Sub Command1_Click()
Form2.Visible = Not Form2.Visible
Me.ZOrder
End SubPrivate Sub Command2_Click()
If Form2.Visible Then
MsgBox "ccc"
End If
End SubPrivate Sub Form_Load()
Load Form2
End Sub