【问题标题】:How can i use a variable in a for loop in a command ? (c#)如何在命令的 for 循环中使用变量? (C#)
【发布时间】:2019-05-29 12:30:49
【问题描述】:

所以我有一个按钮矩阵,从 a1f 到 a10f,从 a 到 j,所以 a1f 在左上角,j10 在右下角。

我想做这样的事情:

for (i = 1; i < 11; i++)
  {
      a{i}f.BackgroundImage = Properties.Resources._1mal2_1_Rebellion;
      b{i}f.BackgroundImage = Properties.Resources._1mal2_2_Rebellion;
      a{i}f.Enabled = false;
      a{i}f.Tag = "playerShip";
      b{i}f.Enabled = false;
      b{i}f.Tag = "playerShip";
  }

所以第一个循环是:

a1f.BackgroundImage = Properties.Resources._1mal2_1_Rebellion;
b1f.BackgroundImage = Properties.Resources._1mal2_2_Rebellion;
a1f.Enabled = false;
a1f.Tag = "playerShip";
b1f.Enabled = false;
b1f.Tag = "playerShip";

第二个是:

a2f.BackgroundImage = Properties.Resources._1mal2_1_Rebellion;
b2f.BackgroundImage = Properties.Resources._1mal2_2_Rebellion;
a2f.Enabled = false;
a2f.Tag = "playerShip";
b2f.Enabled = false;
b2f.Tag = "playerShip";

等等..

a{i}f 或 a[i]f 不起作用。

【问题讨论】:

  • 你不能那样做一个变量引用。将按钮引用存储在数组中可能会更好,这样您就可以对其进行索引以获取引用。
  • 创建一个Buttons 数组并通过for (i = 1; i &lt; 11; i++) { af[i].访问它

标签: c# for-loop variables


【解决方案1】:

如果您无法迭代控件,则可以将它们存储在临时数组中。

但您可能会更好地通过生成控件来做。这可能是改进的下一个层次。现在,你可以试试这个:

例如:

// create arrays which contains the controls.
var aShips = new [] { a1f, a2f, a3f, a4f, a5f, a6f, a7f, a8f, a9f, a10f };
var bShips = new [] { b1f, b2f, b3f, b4f, b5f, b6f, b7f, b8f, b9f, b10f };

// notice the 0  and the < 10, because arrays are zero-indexed
for (i = 0; i < 10; i++)
{
    // now you can access them via the array. 
    aShips[i].BackgroundImage = Properties.Resources._1mal2_1_Rebellion;
    aShips[i].Enabled = false;
    aShips[i].Tag = "playerShip";

    bShips[i].BackgroundImage = Properties.Resources._1mal2_2_Rebellion;
    bShips[i].Enabled = false;
    bShips[i].Tag = "playerShip";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 2018-01-27
    相关资源
    最近更新 更多