将按钮的文本更改为序号 0-9

Changing text of buttons to sequential number 0-9

正在编写一些代码来模拟密码键盘,但最终键盘上的数字应该是随机放置的。

所以我在一个面板的表单上有 10 个按钮,我希望它们的编号从 0-9 开始,我目前有以下代码,但它似乎从 1 开始,然后3秒后上升

我目前拥有的代码是

protected void Page_Load(object sender, EventArgs e)
{            
    int i = 0;

    foreach (var item in panel1.Controls)
    {
        if (item is Button)
        {
            var tmp = (Button)panel1.Controls[i];
            tmp.Text = i.ToString();
        }
        i++;
    }
}

结果看起来像

我不明白为什么它不是从 0 开始到 9。

您的 i 计算所有控件,您需要另一个变量来仅计算按钮 :

int j=0;
foreach (var item in panel1.Controls)
        {
            if (item is Button)
            {
                var tmp = (Button)panel1.Controls[i];
                tmp.Text = j.ToString();
                j++;
            }
            i++;
        }

或者你为什么不直接试试:

if (item is Button)
{
    item.Text = j.ToString();
    j++;
}
if (item is Button)
{
    ((Button)item).Text = i.ToString();
    i++;
}

您已经有了按钮。你不需要索引。另外,我现在只计算按钮。