Code um die Daten zwischen einem Enum und einer ListBox auszutauschen.
class whatever()
Enum TraceEventType
Nummer1 = 2 ^ 0
Nummer2 = 2 ^ 1
End Enum
sub load()
'ListBoxLogLevel ist eine ListBox im Formular mit dem
SelectionMode = MultiSimple
'TraceEventType ist der EnumTyp
'Die Daten des Enums in die Listbox bringen:
ListBoxLogLevelDB.Items.AddRange([Enum].GetNames(GetType(TraceEventType)))
'Die in test gespeicherten Enum-Daten in der listbox selektieren
Dim test As TraceEventType = TraceEventType.Error Or TraceEventType.Information
Dim ItemsToSelect As New Collection
'ListBox durchlaufen
For Each ListItem In ListBoxLogLevelDB.Items
'EnumEntry = EnumEntry Or [Enum].Parse(GetType(TraceEventType), item.text)
If (test And [Enum].Parse(GetType(TraceEventType), ListItem.ToString)) >= 1 Then
ItemsToSelect.Add(ListItem)
End If
Next
'Die Elemente wirklich selektieren
For Each item In ItemsToSelect
ListBoxLogLevelDB.SelectedItems.Add(item)
Next
'Den Handler erst jetzt aktivieren, damit er beim Schritt vorher nicht immer reinspringt
AddHandler ListBoxLogLevelDB.SelectedValueChanged, AddressOf ListBoxLogLevelDB_SelectedValueChanged
End Sub
'Die selektierten ListBox-Einträge auslesen
Private Sub ListBoxLogLevelDB_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim EnumEntry As New TraceEventType
'Die Listbox durchlaufen
For Each item In ListBoxLogLevelDB.SelectedItems
EnumEntry = EnumEntry Or [Enum].Parse(GetType(TraceEventType), item.ToString)
Next
Debug.WriteLine(EnumEntry.ToString)
End Sub
end class
1 Kommentare zum Snippet