2016-10-03 6 views
-1

これをループするのを手伝ってもらえますか?私はvb.netの言語を学び始めています類似のコードブロックをループで置き換えるにはどうすればよいですか?

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

チェックしてみてください。 "これをループする"とは何も意味しません。あなたが達成しようとしていることを正確かつ明確に説明してください。私たちが推測する必要がないときは、私たちは喜んで助けてくれるでしょう。 – jmcilhinney

+0

また、あなたの質問のタイトルは簡潔な要約でなければなりませんが、質問自体にはすべての関連する詳細が含まれるべきです。言語を学ぶことを始めたばかりの事実はどちらの場合でも関係ありません。事実ばかりです。 – jmcilhinney

+0

申し訳ありませんが、あなたの質問は明確ではありません良い質問をする方法について[尋ねる]を見てください –

答えて

0

質問は本当に問題ではないので私はなぜこれに答えるのか分かりません。明確ではなく、フォーマットはすべて間違っています。しかし、私は文字通り、過去10分間に似たような文章を書いているので、私はかなり良い気分になります。.....

あなたは2つの方法(おそらく他の方法があります)どちらもオブジェクトのコレクションを反復処理するForeachループを使用します。

最初は、フォーム上のボタンの無名配列をループします。同じ条件。他のボタンを追加すると、配列の最後に追加するだけで十分です。

次の方法はほぼ同じことですが、手動でボタンを配列に追加する必要はありません。これは、フォーム上のすべてのボタンに対してロジックを実行することを前提としています。現在のフォーム上のすべてのコントロール(ボタン、テキストボックス)を受け取ります。ボタンの場合はボタンオブジェクトに変換し、同じ条件を実行します。

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 

あなたはそれよりも良い説明を提供する必要があるとしているHow to ask

関連する問題