2016-10-03 2 views
-1

Kannst du mir bitte helfen, diesen zu wiederholen? Ich fange an vb.net SpracheWie ersetzt man eine Anzahl ähnlicher Codeblöcke durch eine Schleife?

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If Button1.BackColor = Color.Red Then 
     Button1.BackColor = Color.Pink 
    End If 
    If Button2.BackColor = Color.Red Then 
     Button2.BackColor = Color.Pink 
    End If 
    If Button3.BackColor = Color.Red Then 
     Button3.BackColor = Color.Pink 
    End If 
End Sub 
+3

Du wirst eine bessere Erklärung als das zu bieten haben. "Schleife diesen" bedeutet nichts. Bitte geben Sie eine vollständige und klare Erklärung GENAU, was Sie erreichen möchten. Wenn wir nicht raten müssen, sind wir mehr als glücklich zu helfen. – jmcilhinney

+0

Auch sollte der Titel Ihrer Frage eine kurze Zusammenfassung sein, während die Frage selbst alle relevanten Details enthalten sollte. Die Tatsache, dass Sie gerade erst anfangen, die Sprache zu lernen, ist in beiden Fällen nicht relevant. Nur die Fakten, Ma'am. – jmcilhinney

+0

Entschuldigung, aber Ihre Frage ist nicht klar, werfen Sie einen Blick auf [fragen], wie man gute Fragen stellt –

Antwort

0

Ich weiß nicht, zu erfahren, warum ich dies zu beantworten, weil die Frage nicht wirklich eine Frage ist. Es ist nicht klar und die Formatierung ist alles falsch. Da ich aber in den letzten 10 Minuten wörtlich etwas Ähnliches geschrieben habe, bin ich ziemlich gut gelaunt und möchte helfen .....

Du kannst es entweder auf zwei Arten tun (es gibt wohl andere Möglichkeiten) Beide verwenden eine Foreach-Schleife, die durch eine Auflistung von Objekten iteriert.

Die erste Schleife durchläuft ein anonymes Array der Schaltflächen im Formular. Dann die gleiche Bedingung. Einfach genug, wenn Sie einen weiteren Button hinzufügen, fügen Sie ihn am Ende des Arrays hinzu.

For each btn As Button In {Button1, Button2, Button3, Button4} 
     If btn.BackColor = Color.Red Then 
      btn.BackColor = Color.Pink 
     End If 
    Next 

Die nächste Methode macht fast das gleiche, aber Sie müssen die Schaltflächen nicht manuell zum Array hinzufügen. Es setzt voraus, dass Sie die Logik für jede Schaltfläche in dem Formular ausführen möchten. Es nimmt alle Steuerelemente (Button's, Textbox) auf dem aktuellen Formular, wenn es eine Schaltfläche ist, konvertieren Sie es in ein Button-Objekt und führen Sie die gleiche Bedingung.

For each btn As Control In Me.Controls 
     If btn.GetType() = GetType(Button) then 
      Dim myButton As Button = CType(btn, Button) 
      If myButton.BackColor = Color.Red Then 
       myButton.BackColor = Color.Pink 
      End If 
     End If 
    Next 

Bitte beachten Sie auch How to ask

Verwandte Themen