【问题标题】:C# Go through object names with loopC# 使用循环遍历对象名称
【发布时间】:2018-09-03 08:18:13
【问题描述】:

我有一个数独游戏,我想在其中自动生成一个数独,以便玩家解决它。

当我在 2d-Array 中生成数字时,我已经这样做了,我想通过将这些值放在 81 个按钮的 text-property 上,使用户可以看到这些值。这些按钮都以类似的方式命名。 (sudoku_0_0, sudoku_0_1 etc.- 第一个数字是 x 坐标,第二个数字是 y 坐标)

我可以用循环将值放在按钮上吗? 喜欢:

for(var x=0;x<=8;x++){
    for(var y=0;y<=8;y++){
        sudoku_x_y.Text = "Hello"
    }
} 

显然这不起作用,但有没有办法做类似的事情?

【问题讨论】:

  • 这是 WinForms 吗? WPF?还有什么?

标签: c# loops object


【解决方案1】:

也将您的按钮放入一个数组中。

制作一个二维按钮数组,然后执行以下操作:

Button[][] sudokuButtons = new Button[9][9];
for (int row = 0 ; row != 9 ; row++) {
    for (int col = 0 ; col != 9 ; col++) {
        var name = string.Format("sudoku_{0}_{1}", row, col);
        sudokuButtons[row][col] = this.Controls.Find(name, true).FirstOrDefault() as Button;
    }
}

【讨论】:

  • 或者只是循环遍历包含所有这些按钮的元素的 Items/Children 属性。
猜你喜欢
  • 2012-09-12
  • 1970-01-01
  • 2019-04-29
  • 2016-04-01
  • 1970-01-01
  • 2020-06-09
  • 1970-01-01
  • 2017-02-28
  • 2013-11-02
相关资源
最近更新 更多