引用一个按钮作为循环中使用的变量

时间:2014-02-01 13:07:56

标签: c# button reference numbers concatenation

大家很抱歉,如果已经给出答案,但我已经搜索了这个并且已经空白了。

我有一个按钮网格,点击后会消失。这很好。这些按钮被命名为tile1,tile2,tile3等......它们的数字是连续的。

他们的click_handler目前每个手动'消失'这样的发送按钮......:

tile1.visible = false

我正在寻找一种简单的方法来引用磁贴名称和数字,以便我可以

  1. 通过引用它们的名称和数字来消除组中的按钮(即在一个命令(或循环)中消除第1个按钮,然后是接下来的2个,然后是接下来的6个......你得到图片)。
  2. 创建一个重置循环,从代码中重置按钮的visibility属性,而无需手动键入每个按钮名称。
  3. 所以在一个理想的世界里,它可能看起来像......:

    for (i=1; i<=MAX_TILE_NUMBER; ++i)
       {
        string currentTile = "tile" + i
        currentTile.visible = false
       }
    

    我可以在骨子里感觉到,有一种简单的方法可以将按钮名称的字符串部分与我的for循环中的索引“i”连接起来,并使用它来逐个引用或按组引用按钮控件我还没找到。请让我免受即将发生的精神错乱。

    非常感谢。

    由于

    JB

2 个答案:

答案 0 :(得分:1)

只需将按钮放到一个集合中,字典应该最适合您。

var buttons = new Dictionary<string, Button> { { "tile1", tile1 }, ... };
buttons.Add("tile2", tile2);
etc.

然后使用这本词典进行操作。例如,使前三个按钮不可见

var firstThree = buttons.Take(3);
foreach (var b in firstThree)
   b.Value.Visible = false;

您可以通过在此词典上形成LINQ查询来选择您想要的按钮。

答案 1 :(得分:0)