2016-04-08 9 views
0

ループ内の複数のオブジェクトをどのように操作することが可能ですか?たとえば、30個のボタンがあり、背景色を変更したいとします。これは、button1、button2などと呼ばれます。複数のオブジェクトをループ内の名前で操作する

for (int i=1; i<31; i++) 
{ 
    button+i.BACKGROUND.COLOR = AWESOME.BACKGROUND.COLOR; 
} 

「ボタン+ i」の正しい構文は何ですか。またはこれを行うより効率的な方法がありますか?

+3

'Collection'に入れ、その後で作業:あなたは、理論的に反射を経て、ボタンを取得し、あなたはボタンが存在することを知っているとき、いくつかの点で、リストに追加することができ

List<Button> buttons = new List<Button>(); //at some point, in a constructor or Loaded event add all the buttons that have been created to the list foreach(var button in buttons) { } 

それは 'コレクション'です。 –

+1

なぜこのための配列やボタンのリストを作成しないのですか? –

+0

WPF? WinForms? WebForms? MVC? ...? –

答えて

0

すべてのボタンをリストに入れてからforeachを使用できますか?

var t = this.GetType(); 

var fields = t.GetFields(BindingFlags.NonPublic | 
        BindingFlags.Instance); 
//assuming you are doing this in a xaml.cs, if not you may need to change 
// the above to GetProperties or use Public flag, depending on how your buttons 
// are defined. 
foreach (var f in fields) 
{ 
    if (f.FieldType == typeof (Button)) 
     _buttons.Add(f.GetValue(this)); 

} 
関連する問題