在以下代码中,IF语句:
If mnuSubItem1.Visible = False And mnuSubItem2.Visible = False Then
mnuMainMenuItem.Visible = False
End If
无论subitem1和subitem2的可见状态如何,始终结果为true?
If mnuSubItem1.visible = true and mnuSubItem2.visible = false
IF
语句中的代码仍然执行。
我在这里做错了什么?
答案 0 :(得分:3)
我认为您使用此项目作为子菜单项,如下所示:
mnuMainMenuItem - > mnuSubItem1& mnuSubItem2
当mnuMainMenuItem关闭时,mnuSubItem1& 2不可见。所以程序决定执行if语句。
使用此代码来实现目标:
mnuMainMenuItem.ShowDropDown()
If mnuSubItem1.Visible = False And mnuSubItem2.Visible = False Then
mnuMainMenuItem.Visible = False
End If
mnuMainMenuItem.HideDropDown()
答案 1 :(得分:1)
这里并不是100%清楚该声明的意图是什么 - 你可能犯了一个共同的逻辑错误。但我可以提出两个可能有用的选择。试试这个:
If Not mnuSubItem1.Visible AndAlso Not mnuSubItem2.Visible Then
mnuMainMenuItem.Visible = False
End If
或者这个:
If Not mnuSubItem1.Visible OrElse Not mnuSubItem2.Visible Then
mnuMainMenuItem.Visible = False
End If
根据编辑,我们可以尝试反向,甚至完全消除IF:
mnuMainMenuItem.Visible = mnuSubItem1.Visible OrElse mnuSubItem2.Visible