gpt4 book ai didi

c# - 如何在运行时在 WinForms 中设置多个按钮文本?

转载 作者:太空宇宙 更新时间:2023-11-03 19:25:33 26 4
gpt4 key购买 nike

我正在使用 Winform。因为我已经设置了 20 个按钮和向上和向下按钮,如下所示。这些按钮的文本值为button1 = 1;按钮 2 = 2; ... button20 = 20 在开始时。我已经做到了。

enter image description here

当我按下 Down 按钮时,20 个按钮的文本已更改为 21 到 40;和向上按钮返回 1 到 20。

btn_Down click event

button21.Text = "21";
button22.Text = "22";
...
..
button40.Text = "40";

and btn_Up Click event

btn_Down click event

button1.Text = "1";
button2.Text = "2";
...
..
button20.Text = "20";

有什么简单的编码方法吗?

已更新 -

当我尝试 sll 代码时,。

int index = 0;

foreach (var control in this.tableLayoutPanel1.Controls)
{
var button = control as Button;
if (button != null)
{
button.Text = String.Format("{0}", index);
index++;
}
}

我得到了下面。上下也变了,序号倒过来了。

enter image description here

请更新答案。

最佳答案

如果按钮按 1 到 20 的顺序排列,则不需要从按钮名称中提取数字,只需使用自增索引变量即可:

int index = 0;
// either form.Controls or this.Controls dedepnds on where you put this code
foreach (var control in form.Controls)
{
var button = control as Button;
if (button != null)
{
button.Text = String.Format("Button #{0}", index);
index++;
}
}

编辑:试一试,由于手头没有环境设置,所以没有检查

为了避免影响上/下按钮,用特殊的标签值标记它,比如 Tag="ControlButton"

using System.Linq;
var buttons = this.tableLayoutPanel1.Controls
.OfType<Button>()
.Where(b => b.Tag != "ControlButton");
int index = buttons.Count();
foreach (var button in buttons)
{
button.Text = String.Format("Button #{0}", index);
index--;
}

关于c# - 如何在运行时在 WinForms 中设置多个按钮文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8999321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com