0

我有三个组合框:cbo_prefRoom1, cbo_prefRoom2, cbo_prefRoom3

在表单初始化时, cbo_prefRoom2cbo_prefRoom3被禁用。

当用户在cbo_prefRoom1中选择一个选项时,它会启用cbo_prefRoom2。当用户在cbo_prefRoom2中选择一个选项时,它会启用cbo_prefRoom3

我想做的是添加一个实例,如果用户选择 cbo_prefRoom1 中的选项No Preference那么会发生cbo_prefRoom2cbo_prefRoom3更新为相同的值。然后cbo_prefRoom2cbo_prefRoom3被禁用,直到用户更改cbo_prefRoom1中的选项。No PreferenceNo Preference

还有第二种情况,如果用户选择 cbo_prefRoom2 中的选项No Preference则cbo_prefRoom3更新为相同的值并禁用。然后cbo_prefRoom3被禁用,直到用户更改cbo_prefRoom2中的选项。No PreferenceNo Preference

我该如何实现这一目标?

Private Sub cbo_prefRoom1_Change()

' When user selects an option in cbo_prefRoom1 then cbo_prefRoom2 is enabled
    With cbo_prefRoom2
        .Enabled = Len(cbo_prefRoom1.Value) > 0
            If Not .Enabled Then
                .ListIndex = -1
            End If
    End With

End Sub

Private Sub cbo_prefRoom2_Change()

' When user selects an option in cbo_prefRoom2 then cbo_prefRoom3 is enabled
    With cbo_prefRoom3
        .Enabled = Len(cbo_prefRoom2.Value) > 0
            If Not .Enabled Then
                .ListIndex = -1
            End If
    End With

End Sub
4

1 回答 1

1

像这样的东西?您也可以采用相同的想法并将其移动到cbo_prefRoom2单击事件的事件中。

If cbo_prefRoom1.Value = "No Preference" Then
  cbo_prefRoom2.value = "No Preference"
  cbo_prefRoom3.value = "No Preference"
Else
  With cbo_prefRoom2
    .Enabled = Len(cbo_prefRoom1.Value) > 0
    If Not .Enabled Then
      .ListIndex = -1
    End If
  End With
End If
于 2012-10-29T18:18:09.807 回答