gpt4 book ai didi

c# - 将字符串转换为按钮

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

我在图形 winforms 上创建了 5 个按钮(即:btn0、btn1、btn2、btn3、btn4)。我想用这些按钮填充一个数组。

以下代码有效:

Button[] btn = new Button[5];

for (int i=0; i<5; i++)
Button[i] = new Button();

btn[0]=btn0;
btn[1]=btn1;
btn[2]=btn2;
btn[3]=btn3;
btn[4]=btn4;

但我希望能够在 for 循环中执行此操作(假设我有 100 个按钮)。这可能吗?

我试过用下面的方法来做,但是我得到一个错误:

Cannot implicitly convert type 'string' to 'System.Windows.Forms.Button'

Button[] btn = new Button[5];
for (int i=0; i<5; i++)
{
btn[i] = new Button();
btn[i] = "btn"+i.ToString():
}

最佳答案

如果您想将已存在 按钮添加到集合中,那么您可以使用OfType 扩展并将它们添加到List<Button> 中。(这比数组更好,因为您不需要知道表单上有多少个按钮)

这进入了表单的构造函数

public class Form1: Form
{
private List<Button> myButtons = new List<Button>();
public Form1()
{
InitializeComponent();
foreach(Button btn in this.Controls.OfType<Button>()
myButtons.Add(btn);
}
}

List<Button>可以像数组一样使用

// Get the first button in the list
Button btn = myButtons[0];

// Change the caption of the buttons....
for(int x = 0; x < myButtons.Count; x++)
btn.Text = "Button" + x.ToString();

当然,您需要考虑是否真的需要它,因为表单控件集合已经允许您访问表单上的每个按钮,正如您从我准备列表的第一个示例中看到的那样。

请记住,当你写的时候

 btn[i] = new Button();

您正在动态创建一个新按钮来替换您最初设置的按钮实例。这个新按钮与您的表单设计器上的按钮无关。

关于c# - 将字符串转换为按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39270044/

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