2016-10-10 4 views
-1

에 저장하십시오. 지금까지이 코드가 있습니다.배열에있는 기존 버튼을 C#

Button[] buttons = this.Controls 
    .OfType<Button>() 
    .ToArray(); 

for (int i = 0; i < 25; i++) { 
    buttons[i].FlatStyle = FlatStyle.Flat; 
    buttons[i].ForeColor = Color.Red; 
} 

그리고 내게는 입니다. 25 개의 버튼이 있습니다.

for (int i = 0; i < buttons.Length; i++) { 
    buttons[i].FlatStyle = FlatStyle.Flat; 
    buttons[i].ForeColor = Color.Red; 
} 
+1

왜 버튼 수를 변경하면 'i juharr

+0

정말입니까? 왜 이렇게하지 : for (int i = 0; i Pikoh

+3

'이'란 무엇입니까? 그것은 형식입니까? 또한 다른 컨테이너 안에있는 버튼들은'Panel'이나'GroupBox'와 같은 것들입니까? –

답변

4

는 사용하지 마십시오 매직 넘버 (25)는 for 루프 주장하는 경우

Button[] buttons = this.Controls 
    .OfType<Button>() 
    .ToArray(); 

foreach (var button in buttons) { 
    button.FlatStyle = FlatStyle.Flat; 
    button.ForeColor = Color.Red; 
} 

(실제 배열의 길이, buttons.Length을주의하시기 바랍니다) for 루프 문에서 배열의 길이는 범위를 벗어나는 예외를 방지해야합니다.

Button[] buttons = this.Controls.OfType<Button>().ToArray(); 
    for (int i = 0; i < buttons.Length; i++) 
    { 
    buttons[i].FlatStyle = FlatStyle.Flat; 
    buttons[i].ForeColor = Color.Red; 
    } 
+0

그룹 박스 컨테이너를 사용하고 있습니다. 큰 차이가 있습니까? –

+0

@Frank gagui : 아니요, 아마도 * Linq * 비트를 변경하고 싶을 것입니다 (예를 들어, 모든 버튼이 아니라 그룹 박스에서만 사용 가능) –

관련 문제