在flowlayoutpanel内的用户控件中获取所有选中复选框的标签文本

问题描述

我正在使用餐厅POS系统,我创建了一个表格来显示用户可以要求添加到那里的所有其他商品,这是表格:

enter image description here

在此表单中,我添加了一个flowlayoutpanel,并向此flowlayoutpanel添加了多个用户控件,每个用户控件都有一个PictureBoxLabel和{{1} }。我在CheckBox中填充用户控件,如下所示:

flowlayoutpanel

我就能得到这样的标签文本:

flowLayoutPanel2.Controls.Clear();
            DB_conn.Query2("get_food_extras");
            DB_conn._dr = DB_conn._cmd.ExecuteReader();
            while (DB_conn._dr.Read())
            {
                Extra_uc UC = new Extra_uc
                {
                    Extras_ID = DB_conn._dr["ID"].ToString(),Extras_Price = Convert.ToDecimal(DB_conn._dr["price"].ToString()),Extras_name = DB_conn._dr["name"].ToString()
                };
                if (DB_conn._dr["image"] != DBNull.Value)
                {
                    byte[] image = (byte[])DB_conn._dr["image"];
                    image = Decompress(image);
                    var stream = new MemoryStream();
                    stream.Write(image,image.Length);
                    var bitmap = new Bitmap(stream);
                    UC.Extras_image = bitmap;
                }
                UC.CheckBox1.CheckedChanged += UC_PictureBox1_Click;
                UC.MaterialImage.Click += UC_PictureBox1_Click;
                UC.Material_name_txt.Click += UC_PictureBox1_Click;
                UC.MaterialImage.MouseDown += UC_PictureBox1_MouseDown;
                UC.Material_name_txt.MouseDown += UC_PictureBox1_MouseDown;
                UC.MaterialImage.MouseMove += UC_PictureBox1_MouseMove;
                UC.Material_name_txt.MouseMove += UC_PictureBox1_MouseMove;
                flowLayoutPanel2.Controls.Add(UC);
            }

            DB_conn._dr.Close();

我能够获得点击的private void UC_PictureBox1_Click(object sender,EventArgs e) { if (!Food_Moved) { string Extra_Name = ""; CheckState checkd = CheckState.Unchecked; if (sender is Label lab) { Extra_Name = lab.Tag.ToString(); } else if (sender is PictureBox btn1) { Extra_Name = btn1.Tag.ToString(); } else if (sender is Guna.UI2.WinForms.Guna2CheckBox ck) { checkd = ck.CheckState; } MessageBox.Show(Extra_Name.ToString()); } else { Food_Moved = false; } } 的{​​{1}}文本,我现在想要的是如何获取选中的label的所有user control文本?>

解决方法

根据代码,您有一个名为UserControl的{​​{1}},其中包含Extra_uc属性,该属性保存一个额外项的名称,以及一个Extras_name控件,该属性CheckBox属性设置为Modifiers

在这种情况下,您可以像这样简单地获取选中的项目:

internal/public

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...