Mehrere Sender und For-Schleifen zusammenfassen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Mehrere Sender und For-Schleifen zusammenfassen

    Nabend ich habe von folgendem Code einige sich wiederholende Einheiten und mich würde mal interessieren ob man das noch zusammenfassen kann?

    danke Gruss

    VB.NET-Quellcode

    1. If sender Is ToolStripMenuItem29 And CB_items.Checked = True Then
    2. spread = 9
    3. spread2 = 15
    4. For i = 2 To spread
    5. LB_Themen.Items.Add(CStr(LB_Themen.SelectedItem) & value.ToString("00") & i)
    6. Next
    7. For t = 10 To spread2
    8. LB_Themen.Items.Add(CStr(LB_Themen.SelectedItem) & value.ToString("0") & t)
    9. Next
    10. End If
    11. If sender Is ToolStripMenuItem30 And CB_items.Checked = True Then
    12. spread = 9
    13. spread2 = 20
    14. For i = 2 To spread
    15. LB_Themen.Items.Add(CStr(LB_Themen.SelectedItem) & value.ToString("00") & i)
    16. Next
    17. For t = 10 To spread2
    18. LB_Themen.Items.Add(CStr(LB_Themen.SelectedItem) & value.ToString("0") & t)
    19. Next
    20. End If
    21. If sender Is ToolStripMenuItem31 And CB_items.Checked = True Then
    22. spread = 9
    23. spread2 = 30
    24. For i = 2 To spread
    25. LB_Themen.Items.Add(CStr(LB_Themen.SelectedItem) & value.ToString("00") & i)
    26. Next
    27. For t = 10 To spread2
    28. LB_Themen.Items.Add(CStr(LB_Themen.SelectedItem) & value.ToString("0") & t)
    29. Next
    30. End If
    Anstatt unzaehlige male dieses zu testen: ... And CB_items.Checked = True , teste es einmal und gut.

    VB.NET-Quellcode

    1. If CB_items.Checked Then
    2. End If


    In dieser Bedingung dann weiter mit einemr Select Case, dort je nach sender spread und spread2 zuweisen und nach der Select Case dann die beiden Schleifen.
    And i think to myself... what a wonderfuL World!
    @VB1963 Und, nicht Oder. ;)
    @Visual_Prog so was:

    VB.NET-Quellcode

    1. Private Sub ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem29.Click, ToolStripMenuItem30.Click, ToolStripMenuItem31.Click
    2. If CB_items.Checked Then
    3. spread = 9
    4. If sender Is ToolStripMenuItem29 Then
    5. spread2 = 15
    6. ElseIf sender Is ToolStripMenuItem30 Then
    7. spread2 = 20
    8. ElseIf sender Is ToolStripMenuItem31 Then
    9. spread2 = 30
    10. End If
    11. For i = 2 To spread
    12. LB_Themen.Items.Add(CStr(LB_Themen.SelectedItem) & value.ToString("00") & i)
    13. Next
    14. For t = 10 To spread2
    15. LB_Themen.Items.Add(CStr(LB_Themen.SelectedItem) & value.ToString("0") & t)
    16. Next
    17. End If
    18. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @VB1963 Jou.
    @Visual_Prog Dies ist besser:

    VB.NET-Quellcode

    1. Private Sub ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem29.Click, ToolStripMenuItem30.Click, ToolStripMenuItem31.Click
    2. If CB_items.Checked Then
    3. Dim spread2 As Integer
    4. If sender Is ToolStripMenuItem29 Then
    5. spread2 = 15
    6. ElseIf sender Is ToolStripMenuItem30 Then
    7. spread2 = 20
    8. ElseIf sender Is ToolStripMenuItem31 Then
    9. spread2 = 30
    10. End If
    11. For i = 2 To spread2
    12. LB_Themen.Items.Add(CStr(LB_Themen.SelectedItem) & value.ToString("00") & i)
    13. Next
    14. End If
    15. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!