Hallo!
Deine Vorgehensweise ist mir nicht ganz klar. Vorschlag:
Erstelle eine Klasse für Deine Charaktere (clsCharakter) und
lege Enumerationen für die verschiedenen Eigenschaften fest.
Deine Charactere kannst Du in einer List(of clsCharakter) verwalten
und diese Liste sowie die Eigenschafts-Enumerationen an Comboboxen binden.
Public Class clsCharacter
Public Enum enmPowerLevel As Integer
undefined = 0
low = 1
medium = 2
high = 3
ultrahigh = 4
End Enum
Public Enum enmCharacterType As Integer
undefined = 0
Knight = 1
Dragon = 2
Hero = 3
Loser = 4
Beast = 5
End Enum
Dim _GoldPieces As Integer
Dim _PowerLevel As enmPowerLevel
Dim _CharacterType As enmCharacterType
Dim _Name As String
Public Sub New(ByVal ch As enmCharacterType, ByVal CharacterName As String)
CharacterType = ch
Name = CharacterName
_GoldPieces = 0
Powerlevel = enmPowerLevel.medium
End Sub
Public Property Name() As String
Set(ByVal value As String)
_Name = value
End Set
Get
Return _Name
End Get
End Property
Public Property Powerlevel As enmPowerLevel
Set(ByVal value As enmPowerLevel)
_PowerLevel = value
End Set
Get
Return _PowerLevel
End Get
End Property
Public Property CharacterType As enmCharacterType
Set(ByVal value As enmCharacterType)
_CharacterType = value
End Set
Get
Return _CharacterType
End Get
End Property
End Class Und hier die Form:
Public Class frmCharacter
Dim myCharacter As New List(Of clsCharacter)
Dim WithEvents cmbName As New ComboBox _
With {.DisplayMember = "Name", .Parent = Me, .Top = 10}
Dim WithEvents cmbCharactertype As New ComboBox With {.Parent = Me, .Top = _
40}
Dim WithEvents cmbPowerlevel As New ComboBox With {.Parent = Me, .Top = 70}
Private Sub frmCharackter_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'Combos für die Eigenschaften
cmbCharactertype.DataSource = [Enum].GetValues(GetType( _
clsCharacter.enmCharacterType))
cmbPowerlevel.DataSource = [Enum].GetValues(GetType( _
clsCharacter.enmPowerLevel))
'einige Charactere definieren
myCharacter.Add(New clsCharacter(clsCharacter.enmCharacterType.Hero, _
"Siegfried"))
myCharacter.Add(New clsCharacter(clsCharacter.enmCharacterType.Knight, _
"Hagen"))
myCharacter.Add(New clsCharacter(clsCharacter.enmCharacterType.Beast, _
"Kriemhild"))
cmbName.DataSource = myCharacter
End Sub
Private Sub cmbPowerlevel_SelectedIndexChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles cmbPowerlevel.SelectedIndexChanged
If cmbName.SelectedIndex < 0 Then Exit Sub
myCharacter(cmbName.SelectedIndex).Powerlevel = _
CType(cmbPowerlevel.SelectedIndex, clsCharacter.enmPowerLevel)
End Sub
Private Sub cmbCharactertype_SelectedIndexChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles _
cmbCharactertype.SelectedIndexChanged
If cmbName.SelectedIndex < 0 Then Exit Sub
myCharacter(cmbName.SelectedIndex).CharacterType = _
CType(cmbCharactertype.SelectedIndex, clsCharacter.enmCharacterType)
End Sub
Private Sub cmbName_SelectedIndexChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles cmbName.SelectedIndexChanged
cmbCharactertype.SelectedItem = myCharacter( _
cmbName.SelectedIndex).CharacterType
cmbPowerlevel.SelectedItem = myCharacter( _
cmbName.SelectedIndex).Powerlevel
End Sub
End Class |