Winfrom动态插入btn按钮

Winfrom动态插入btn按钮

        private void UpdateGoods()
        {

            //获取当前电子秤id
            IniFile file = new IniFile(System.Windows.Forms.Application.StartupPath + "\\Config.ini");

            string ScaleID = file.IniReadValue("DianZiCheng", "ScaleID");
            if (ScaleID.Length > 0)
            {
                gb2.Controls.Clear();
                cmb_goodsname.Items.Clear();
                Database conn = DatabaseFactory.CreateDatabase();
                //Database conn = new SQL();
                conn.Open();

                DataTable dt = conn.GetDataTable(@"select DISTINCT a.goods_id,b.goods_name from tb_ScaleGoods a 
left join tb_GoodsInfo b on a.goods_id = b.id
where a.scale_id = '" + ScaleID + "' and a.state = 0");

                conn.Close();

                int x = Padding;
                int y = Padding;
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    cmb_goodsname.Items.Add(new ListItem(dt.Rows[i]["goods_name"].ToString(), dt.Rows[i]["goods_id"].ToString()));

                    int goodsId = int.Parse(dt.Rows[i]["goods_id"].ToString());
                    string goodsName = dt.Rows[i]["goods_name"].ToString();

                    Button btn = new Button
                    {
                        Name = $"btn_{goodsId}",
                        Text = goodsName,
                        Width = ButtonWidth,
                        Height = ButtonHeight,
                        Location = new Point(x, y),
                        BackColor = Color.Green, // 绿色背景
                        ForeColor = Color.White, // 白色文字
                        FlatStyle = FlatStyle.Flat, // 扁平风格
                        Font = new Font("黑体", 14F, FontStyle.Regular) // 加粗字体
                    };

                    btn.Click += (sender, e) => Button_Click(goodsId, goodsName);
                    gb2.Controls.Add(btn);

                    // 计算下一个按钮的位置(自动换行)
                    x += ButtonWidth + Padding;
                    if (x + ButtonWidth > gb2.ClientSize.Width - Padding)
                    {
                        x = Padding;
                        y += ButtonHeight + Padding;
                    }
                }
            }

        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值