如何在String数组中存储动态复选框的名称 [英] How to store name of dynamic checkbox in an String array

查看:79
本文介绍了如何在String数组中存储动态复选框的名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hello Everybody

当我不知道用户在运行时选择了多少复选框时,如何在String数组中存储动态创建的复选框名称。

Say我有10个动态复选框,10个用户随机选择6个复选框现在如何获取所选复选框的名称并将它们存储在String数组中。



我知道如何在动态复选框上使用事件处理程序,但是当我不知道数组的大小时,如何声明Straing数组。



这里是什么我到现在为止做了 -

Hello Everybody
How can store name of dynamically created checkbox in a String array when I don''t know how many checkbox will user select at runtime.
Say I have 10 dynamic checkboxes and out of 10 user select 6 checkboxes randomly now how can get the name of those selected checkboxes and store them in a String array.

I know how to use event handler on dynamic check box but confused how to declare Straing array when I don''t know what will be be size of an array.

Here what I have done till now -

private void CheckBoxCheckedChanged(object sender, EventArgs e)
        {
            CheckBox c = (CheckBox)sender;
            //Label myLabel;
            String str = null;
            if (c.Checked == true)
            {
                str = c.Text;
                gpBox[gpcount] = new GroupBox();
                gpBox[gpcount].Name = "gpBox" + Convert.ToString(count);
                gpBox[gpcount].Text = str;
                gpBox[gpcount].Location = new Point(5, gpposition);
                gpBox[gpcount].AutoSize = true;
                this.Controls.Add(gpBox[gpcount]);
                
                aCommand3 = new OleDbCommand("select * from batch_tbl where batch_branch LIKE '" + str + "'", main_connection);
                aAdapter3 = new OleDbDataAdapter(aCommand3);
                ds3 = new DataSet();
                aAdapter3.Fill(ds3, "app_info");
                ds3.Tables[0].Constraints.Add("pk_bno", ds3.Tables[0].Columns[0], true);
                int batch_count = ds3.Tables[0].Rows.Count;
                batchCheckBox = new CheckBox[batch_count];
                //filling the groupbox with batch code by generating dynamic checkboxes
                for (int j=0; j < batch_count; ++j)
                {
                    batchCheckBox[j] = new CheckBox();
                    batchCheckBox[j].Name = "batch" + Convert.ToString(k);
                    batchCheckBox[j].Text = ds3.Tables[0].Rows[j][1].ToString();
                    Console.WriteLine(batchCheckBox[j].Text);
                    batchCheckBox[j].Location = new System.Drawing.Point(104 * position, 30);
                    gpBox[gpcount].Controls.Add(batchCheckBox[j]);
                    batchCheckBox[j].CheckStateChanged += new System.EventHandler(BatchBoxCheckedChanged);
                    position++;
                    count++;
                    Console.WriteLine(batchCheckBox[j].Name);
                    k++;
                }
                position = 1;
                gpposition += 100;
            }
            else
            {
                count--;
                this.Controls.RemoveByKey("lbl" + c.Name);
                this.Update();
            }
        }
        int total_batch = 1;
        string[] batchname;
        private void BatchBoxCheckedChanged(object sender, EventArgs e)
        {
            CheckBox batchBox = (CheckBox)sender;
            //Here I want to store name of checkbox in array
            if (batchBox.Checked == true)
            {
                batchname = new String[total_batch];
                total_batch++;

            }
            else
            {
            }
        }

推荐答案

使用列表而不是字符串数组(of T) [ ^ ]泛型类,提供搜索,排序和操作列表的功能。点击链接查找示例。
Rather than string array, use List(of T)[^] generic class, which provide functionality for search, sort and manipulate list. Follow the link to find an example.


这篇关于如何在String数组中存储动态复选框的名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆