从枚举中填充控件

时间:2015-02-24 16:41:52

标签: enums vb6 controls

说我有以下枚举:

Public Enum TimeUnit
  Day
  Week
  Month
  Year
End Enum

有什么方法可以使用这个枚举来填充ComboBox或ListBox?理想情况下,我希望控件将内部表示形式作为插入值(即Day,而不是0)。


如果有更好的方法可以解决这个问题(参见' X / Y问题'),我的基本要求是我必须能够使用TimeUnit / em>枚举,即作为一种类型。我也真的喜欢避免在代码中重复自己。

1 个答案:

答案 0 :(得分:1)

我假设你想使用枚举作为值传递给某个方法。您可以将枚举值分配给 ItemData 属性,将文字值分配给Item(用户看到的文本)。我建议使用Bob77的命名约定并编写一个方法来填充你的组合框或列表框控件。像下面这样的东西应该有效。

Private Sub LoadCombo()

    Combo1.Clear
    Combo1.AddItem "Day"
    Combo1.ItemData(Combo1.NewIndex) = TimeUnit.Day
    Combo1.AddItem "Week"
    Combo1.ItemData(Combo1.NewIndex) = TimeUnit.Week
    Combo1.AddItem "Month"
    Combo1.ItemData(Combo1.NewIndex) = TimeUnit.Month
    Combo1.AddItem "Year"
    Combo1.ItemData(Combo1.NewIndex) = TimeUnit.Year

End Sub

Private Sub Combo1_Click()

    MsgBox "You have selected " & Combo1.Text & " (" & CStr(Combo1.ItemData(Combo1.ListIndex)) & ")"

End Sub