将按钮的文本更改为序号 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++;
}
您已经有了按钮。你不需要索引。另外,我现在只计算按钮。
正在编写一些代码来模拟密码键盘,但最终键盘上的数字应该是随机放置的。
所以我在一个面板的表单上有 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++;
}
您已经有了按钮。你不需要索引。另外,我现在只计算按钮。