我正在制作一个应用程序(Windows窗体),我有不同的按钮。我的目标是根据变量的值显示不同的按钮。例如,如果变量的值为10,它将显示前10个按钮。
到目前为止,我的代码是:
MySqlCommand command = new MySqlCommand("SELECT id_produto, designacao FROM
produtos ORDER BY id_categoria ASC;", mConn);
MySqlDataAdapter dacom = new MySqlDataAdapter(command);
mConn.Open();
dacom.Fill(dtprodutos);
numprodutos = dtprodutos.Rows.Count;
for (int i = 1; i <= numprodutos; i++)
{
bprod[i].Show();
}
我的按钮叫做bprod1,bprod2,bprod3等。我正在做的是从“produtos”获取“id_produto”和“designacao”并将它们放入DataTable中。然后我创建一个变量,其行数为“dtprodutos”。最后,我创建一个循环来显示按钮。
我的问题是Visual Studio不允许我做“bprod [i] .Show();”因为他认为这是一个未创建的变量。
我感谢任何建议和帮助。
将所有按钮放入键入的列表中。在表单范围内声明它(例如,上面的表单构造函数)。然后,在InitializeComponent
(或Form_Load
)之后将所有按钮添加到列表中。
List<Button> buttonList = new List<Button>();
public Form1()
{
InitializeComponent();
buttonList.Add(bprod1);
buttonList.Add(bprod2);
//etc
}
最后,当您执行查询并获取数字(numprodutos
)时,从列表中显示许多元素(实际上是按钮)
numprodutos = dtprodutos.Rows.Count;
for (int i = 1; i <= numprodutos; i++)
{
buttonList[i].Show();
}
或者,使用linq
buttonList.Take(numprodutos).ToList().ForEach(btn => btn.Show());