Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态显示按钮_C#_Winforms_Button_Datatable_Show - Fatal编程技术网

C# 动态显示按钮

C# 动态显示按钮,c#,winforms,button,datatable,show,C#,Winforms,Button,Datatable,Show,我正在制作一个应用程序(windows窗体),其中有不同的按钮。我的目标是根据变量的值显示不同的按钮。例如,如果变量的值为10,它将显示前10个按钮 到目前为止,我的代码是: MySqlCommand command = new MySqlCommand("SELECT id_produto, designacao FROM produtos ORDER BY id_categoria ASC;", mConn); MySqlDataAdapter dacom = new MySqlDataA

我正在制作一个应用程序(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();
}
MySqlCommand=newmysqlcommand(“选择id\u produto,designcao FROM
按id_categoria ASC;“,mConn)排序的产品订单;
MySqlDataAdapter dacom=新的MySqlDataAdapter(命令);
mConn.Open();
dacom.Fill(dtprodutos);
numprodutos=dtprodutos.Rows.Count;

对于(int i=1;i将所有按钮放在一个键入的列表中。在表单范围内声明它(例如,在表单构造函数上方)。然后,在
初始化组件之后(或在
表单加载中)将所有按钮添加到列表中

或者,使用linq

buttonList.Take(numprodutos).ToList().ForEach(btn => btn.Show());

我和你的编译器有同样的问题:我不知道
bprod
应该是什么。它是在哪里定义的?哦,对不起,我忘了说…我的按钮叫做bprod1、bprod2、bprod3等等,直到25岁。这是一个windows窗体应用程序。我假设
bprod
会从
0
变成
numprodutos-1
。所以你会需要有:
for(inti=0;i
(注意这里有2个变化。)是这样吗?例如,如果您的第一个按钮被称为
bprod1
,您为什么认为可以像
bprod[1]那样访问它
?可能是重复的感谢!!!很有效!你无法想象我在这上面花了多少时间。再次感谢!不是我……我甚至不能公开投票……你的回答帮助了我!@MiniKing17 Tiago,别担心,我不会指责任何人。如果你能从投反对票的人那里解释为什么投反对票,那就太好了……这样我就可以学习和跳过mi了下一次是赌注还是错误的做法。我想,那个否决你的人,也否决了我的问题。
numprodutos = dtprodutos.Rows.Count;
for (int i = 1; i <= numprodutos; i++)
{
    buttonList[i].Show();
}
buttonList.Take(numprodutos).ToList().ForEach(btn => btn.Show());