用数字引用按钮

时间:2013-10-19 19:05:15

标签: c# button

有没有办法在C#中使用数值引用按钮?我试图使用一个可重用的方法操作按钮上的文本。这是我目前的编码: 一键式点击方法(总共有16个):

private void Card1_Click(object sender, EventArgs e)
    {
        buff = CardClick(1);
        if (buff != null)
        {
            Card1.Text = buff;
        }
    }

可重用的方法(代码确实有漏洞,正在开发中):

private string CardClick(int card)
        {
            guesses[g++] = card;  //alternate g
            if ((guesses[0] != null) && (guesses[1] != null))
            {
                //Reset Card guesses[0]
                //Reset Card guesses[1]
                return null;
            }
            else
            {
                if (card > 8)
                {
                    return map[2, card];
                }
                else
                {
                    return map[1, card];
                }
            }

3 个答案:

答案 0 :(得分:0)

您可以使用按钮数组

   Button[] buttonArray = new Button[10];

答案 1 :(得分:0)

您可以按类型从表单中获取所有按钮,然后提取数组:

public Button[] AllButtons()
    {
        var buttons = new List<Button>();

        foreach (var control in this.Controls)
        {
            if (control.GetType() == typeof(Button))
                buttons.Add((Button)control);
        }

        return buttons.ToArray();
    }

答案 2 :(得分:0)

您还可以使用Controls.Find()根据其名称获取对所需按钮的引用:

        int i = 1;
        Control[] matches = this.Controls.Find("Card" + i.ToString(), true);
        if (matches.Length > 0 && matches[0] is Button)
        {
            Button btn = (Button)matches[0];
            // ... do something with "btn" ...
            btn.PerformClick();
        }