Hi,
Ich bin gerade dabei ein altes Projekt zu überarbeiten und hänge nun an einer stelle fest.
Irgendwie bin ich mir nicht sicher ob dies so die beste Lösung ist und wollte einfach mal hören was ihr so denkt:
Es geht um Menu Einträge welche mit den Pfeiltasten ausgewählt werden können.
Die Einträge liegen in einer List (Of T) und müssen bei der Auswahl "überwacht" werden.
Überwacht im dem Sinne dass es einige Einträge gibt, welche nicht auswählbar sind, diese müssen übersprungen werden.
Natürlich muss auch darrauf geachtet werden das wenn man am ende angekommen ist, es auf der anderen Seite der Liste wieder los geht.
Hier mal der Code:
Würdet ihr das anders Lösen?
Mir ist bis jetzt noch nichts anderes eingefallen, ohne das man gleich das ganze Menu neu schreiben muss.
Ich bin gerade dabei ein altes Projekt zu überarbeiten und hänge nun an einer stelle fest.
Irgendwie bin ich mir nicht sicher ob dies so die beste Lösung ist und wollte einfach mal hören was ihr so denkt:
Es geht um Menu Einträge welche mit den Pfeiltasten ausgewählt werden können.
Die Einträge liegen in einer List (Of T) und müssen bei der Auswahl "überwacht" werden.
Überwacht im dem Sinne dass es einige Einträge gibt, welche nicht auswählbar sind, diese müssen übersprungen werden.
Natürlich muss auch darrauf geachtet werden das wenn man am ende angekommen ist, es auf der anderen Seite der Liste wieder los geht.
Hier mal der Code:
VB.NET-Quellcode
- 'Rauf
- If ruff.Evaluate() Then
- Selected -= 1
- If Selected < 0 Then
- Selected = Einträge.Count - 1
- End If
- If Einträge(Selected).Enabled = False Then
- Dim fertig As Boolean = False
- For x = Selected To 0 Step -1
- If Einträge(x).Enabled = True Then
- Selected = x
- Exit For
- End If
- Next
- If fertig = False Then
- Selected = Einträge.Count - 1
- For y = Selected To 0 Step -1
- If Einträge(y).Enabled = True Then
- Selected = y
- Exit For
- End If
- Next
- End If
- End If
- End If
- 'Runter
- If runner.Evaluate() Then
- Selected += 1
- If Selected >= Einträge.Count Then
- Selected = 0
- End If
- If Einträge(Selected).Enabled = False Then
- Dim fertig As Boolean = False
- For x = Selected To Einträge.Count - 1
- If Einträge(x).Enabled = True Then
- Selected = x
- fertig = True
- Exit For
- End If
- Next
- If fertig = False Then
- Selected = 0
- For y = 0 To Einträge.Count - 1
- If Einträge(y).Enabled = True Then
- Selected = y
- Exit For
- End If
- Next
- End If
- End If
- End If
Würdet ihr das anders Lösen?
Mir ist bis jetzt noch nichts anderes eingefallen, ohne das man gleich das ganze Menu neu schreiben muss.