用数字引用按钮



有没有办法在 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];
                }
            }

您还可以使用 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();
        }

您可以使用一组按钮

   Button[] buttonArray = new Button[10];

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

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

最新更新