Code vereinfachen / reduzieren

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von SystemUnknow.

    Code vereinfachen / reduzieren

    Hallo Liebe community ich bin neu hier aber auch neu in der programmiersprache visual basic.Ich wollte nun für ein online multiplayer spiel ein programm erstellen mit dem andere leute sehen kann ich wie ich einen bestimmtem Character verschiedene item spielen es ist schwierig das jetzt zur erklären.Aber nun zum Problem welches wäre ,dass ich für jeden Charakter einen Radiobutton angelegt habe und wenn dieser ausgewählt ist sollen die unteren pictureboxen bestimmte bilder anzeigen.Also hab ich z.b. gemacht "if radiobutton8.checked then picturebox1.image = my.resources ....,das problem jeder character hat 6 slots also brauche ich 6 pictureboxes und das bei über 70 Charactern ist ne menge arbeit.
    Hier der Source code

    Quellcode

    1. Public Class Form2
    2. Private Sub RadioButton6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton6.CheckedChanged
    3. End Sub
    4. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    5. Form1.Close()
    6. Me.Close()
    7. End Sub
    8. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    9. Form1.Show()
    10. Me.Close()
    11. End Sub
    12. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    13. If RadioButton15.Checked Then
    14. PictureBox1.Image = My.Resources._3006_Berserkers_Greaves
    15. End If
    16. If RadioButton15.Checked Then
    17. PictureBox2.Image = My.Resources._3078_Trinity_Force
    18. End If
    19. If RadioButton15.Checked Then
    20. PictureBox3.Image = My.Resources._3146_Hextech_Gunblade
    21. End If
    22. If RadioButton15.Checked Then
    23. PictureBox4.Image = My.Resources._3064_Spike_the_Ripper
    24. End If
    25. If RadioButton15.Checked Then
    26. PictureBox5.Image = My.Resources._066_Sindoran_Shielding_Amulet
    27. End If
    28. If RadioButton15.Checked Then
    29. PictureBox6.Image = My.Resources._3115_Nashors_Tooth
    30. End If
    31. If RadioButton8.Checked Then
    32. PictureBox1.Image = My.Resources._3020_Flamewalkers
    33. End If
    34. If RadioButton8.Checked Then
    35. PictureBox2.Image = My.Resources._3027_Guinsoos_Rod_of_Oblivion
    36. End If
    37. End Sub
    38. End Class

    Ich hoffe ihr wisst wie ich diese mühsame tipperei einfacher gestalten könnte.Hatte auch shon die idee die Character in eine Textdatei zu packen und diese auslesen zu lasen in eine listbox und dann nunmal der ablauf der pictureboxen nur wusste ich nich wie man das umsetzten kann.
    MFG Ryko

    Edit by Manschula: Titel geändert

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manschula“ ()

    Was willste jetzt genau? Das wir dir den Source optimieren oder was?
    mfg
    Jetzt schnell und einfach das Zehnfingersystem mit Scribble 3 erlernen. Mehr Informationen und Download gibts hier. Redundancy2 - leichtgewichtige freie Cloudsoftware. Folge mir auf GitHub
    Mit ElseIf sparste dir pro Abfrage wengistens eine Zeile.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    select case ist in diesem Falle Blödsinn da es nur maximal 2 cases gibt und nur True benötigt wird

    so sieht das ganze besser aus:

    VB.NET-Quellcode

    1. If RadioButton15.Checked Then
    2. PictureBox1.Image = My.Resources._3006_Berserkers_Greaves
    3. PictureBox2.Image = My.Resources._3078_Trinity_Force
    4. PictureBox3.Image = My.Resources._3146_Hextech_Gunblade
    5. PictureBox4.Image = My.Resources._3064_Spike_the_Ripper
    6. PictureBox5.Image = My.Resources._066_Sindoran_Shielding_Amulet
    7. PictureBox6.Image = My.Resources._3115_Nashors_Tooth
    8. End If
    9. If RadioButton8.Checked Then
    10. PictureBox1.Image = My.Resources._3020_Flamewalkers
    11. PictureBox2.Image = My.Resources._3027_Guinsoos_Rod_of_Oblivion
    12. End If


    bzw. da es um RadioButtons geht vermutlich:

    VB.NET-Quellcode

    1. If RadioButton15.Checked Then
    2. PictureBox1.Image = My.Resources._3006_Berserkers_Greaves
    3. PictureBox2.Image = My.Resources._3078_Trinity_Force
    4. PictureBox3.Image = My.Resources._3146_Hextech_Gunblade
    5. PictureBox4.Image = My.Resources._3064_Spike_the_Ripper
    6. PictureBox5.Image = My.Resources._066_Sindoran_Shielding_Amulet
    7. PictureBox6.Image = My.Resources._3115_Nashors_Tooth
    8. ElseIf RadioButton8.Checked Then
    9. PictureBox1.Image = My.Resources._3020_Flamewalkers
    10. PictureBox2.Image = My.Resources._3027_Guinsoos_Rod_of_Oblivion
    11. End If
    Wenn man das ganze öfters im Code brauch würde sich halt auch anbieten das ganzein einen Sub zu packen.
    Jetzt schnell und einfach das Zehnfingersystem mit Scribble 3 erlernen. Mehr Informationen und Download gibts hier. Redundancy2 - leichtgewichtige freie Cloudsoftware. Folge mir auf GitHub
    Ja also dass was ich wollte war eine vllt. eine einfachere möglichkeit das ganze zu machen d.h. also weniger tipperei habe ich den teoretisch auch eine andere möglichkeit soetwas zu machen ohne radiobuttons?
    oh, ja.
    Was dir vorschwebt ist in der Datenbänkerei als DetailView bekannt, und wird von Designern und Databinding sehr schön unterstützt - wenn man sich nur angewöhnen könnte, Gui und Daten zu trennen.

    Ich hänge mal eine Solution an, die einen DetailView vorführt, wobei gleich 3 verschiedene Selektor-Controls eingesetzt wern. Inklusive Laden/Speichern.

    Da das Zeug in Designern gemacht ist, kann man der Solution kaum ansehen, wie sie gemacht ist. Habich im Tut DetailView auf Movie-Tuts versucht zu erklären.
    Dateien

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    @ErfinderDesRades danke für die aufklärung nur leider knallst du hier wörter in den post die mich gerade ziemlich verwirren wie schon in meinem ersten post erwähnt bin ich noch anfänger.Aber trotzdem danke für die antwort ich wede mir das ganze mal ansehen und gucken ob ich das irgendwie verstehen kann.
    Nochmal danke ich dir dafür
    MFG Ryko