在c#中将现有的按钮存储在数组中

本文关键字:按钮 数组 存储 | 更新日期: 2023-09-27 18:12:18

到目前为止我有这个代码。

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

得到IndexOutOfRangeException。我有25个按钮

在c#中将现有的按钮存储在数组中

不要使用幻数 (25):

Button[] buttons = this.Controls
  .OfType<Button>()
  .ToArray();
foreach (var button in buttons) {
  button.FlatStyle = FlatStyle.Flat;
  button.ForeColor = Color.Red;
}

如果您坚持使用for循环(请注意buttons.Length - 实际数组的长度):

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

在for循环语句中使用数组的Length可以防止超出范围的异常。

  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;
  }