动态显示按钮
Show buttons dynamically
我正在制作一个应用程序(windows 表单),其中有不同的按钮。我的 objective 是根据变量的值显示不同的按钮。例如变量值为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" 并将它们放入数据表中。
然后我创建一个行数为 "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());
我正在制作一个应用程序(windows 表单),其中有不同的按钮。我的 objective 是根据变量的值显示不同的按钮。例如变量值为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" 并将它们放入数据表中。 然后我创建一个行数为 "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());