Public Class Form1
Dim Keuze1(3) As String
Dim Keuze2(9) As String
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Dim hstrKeuze1 As String
Dim hstrKeuze2 As String
Dim i As Integer
hstrKeuze1 = ComboBox1.Items(ComboBox1.SelectedIndex)
If ComboBox2.Items.Count > 0 Then
hstrKeuze2 = ComboBox2.Items(ComboBox2.SelectedIndex)
Else
hstrKeuze2 = ""
End If
If Not Keuze2_past_bij_Keuze1(hstrKeuze1, hstrKeuze2) Then
ComboBox2.Items.Clear()
For i = 1 To 9
If Keuze2_past_bij_Keuze1(hstrKeuze1, Keuze2(i)) Then
ComboBox2.Items.Add(Keuze2(i))
End If
Next i
ComboBox2.SelectedIndex = 0
End If
End Sub
Private Sub VulAlleKeuzesVooraf()
'Eigenlijk zouden die keuzes in een database tabelletje moeten...
Keuze1(1) = "A"
Keuze1(2) = "B"
Keuze1(3) = "C"
Keuze2(1) = "A.1"
Keuze2(2) = "A.2"
Keuze2(3) = "A.3"
Keuze2(4) = "B.1"
Keuze2(5) = "B.2"
Keuze2(6) = "B.3"
Keuze2(7) = "C.1"
Keuze2(8) = "C.2"
Keuze2(9) = "C.3"
End Sub
Private Function Keuze2_past_bij_Keuze1(ByVal iKeuze1 As String, ByVal iKeuze2 As String) As Boolean
'Hier je logica volgens welke de eerste en de tweede keuze bijelkaar passen
Keuze2_past_bij_Keuze1 = False
If Len(iKeuze2) > 0 Then
If Mid$(iKeuze1, 1, 1) = Mid$(iKeuze2, 1, 1) Then
Keuze2_past_bij_Keuze1 = True
End If
End If
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
Me.BackColor = Color.LightGray
VulAlleKeuzesVooraf()
For i = 1 To 3
ComboBox1.Items.Add(Keuze1(i))
Next i
End Sub
Private Sub ComboBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.TextChanged
TextBox1.Text = Mid$(ComboBox2.Text, 1, 1) & Mid$(ComboBox2.Text, 3, 1)
End Sub
End Class