获取文件夹下的文件,取需要加载的文件,并获取名字,要求有几个名字就创建几个CheckBox按钮。 点击其中的一个按钮就加载该名字对应的文件数据。 这里就是不知道怎么动态创建CheckBox按钮? 请高手指点,在线等。checkbox  C#

解决方案 »

  1.   

     private void Form1_Load(object sender, EventArgs e)
            {            CheckBox chk = new CheckBox();
                chk.Text = "写对应的文件名";
                chk.Location = new Point(10, 10); //你根据实际值计算
                chk.CheckedChanged += chk_CheckedChanged;
                this.Controls.Add(chk);
            }        void chk_CheckedChanged(object sender, EventArgs e)
            {
                string filename = (sender as CheckBox).Text; //获取文件名
                //加载文件代码
            }
      

  2.   

    动态添加控件
    CheckBox ckb = new CheckBox();
    ckb.Name = "ckbName";    //控件名   要多个可以写循环,然后名字后面可以+i
    ckb.Size = new Size(121, 20);   //控件大小
    ckb.Location = new Point(10, 10);    //控件位置
    ……
      

  3.   

    CheckBox chk = new CheckBox();
    chk.AutoSize = true;
    chk.Location = new System.Drawing.Point(334, 129);//位置 
    chk.Size = new System.Drawing.Size(78, 16);//大小 
    chk.Text = "checkBox1";//内容 
    Controls.Add(chk);
      

  4.   

    [quote=引用 1 楼 gxingmin 的回复:]
    C# code?1234567891011121314151617 private void Form1_Load(object sender, EventArgs e)        {             CheckBox chk = new CheckBox();            chk.Text = "写对应的文件名";            chk.L……
      

  5.   

    可以先获取文件的个数,写个循环创建控件,在把文件的名字赋值给控件的Name属性,这样点击哪个控件就知道获取那个文件的数据
      

  6.   

    只得到了一个checkbox  也不是我想要的文件名称生成的checkbox!  如果用获取的文件名称来生成checkbox 该怎么写?
      

  7.   

    int x = 0,y = 0;
    文件夹 = new 文件夹(路径);
    foreach(文件 in 文件夹下的文件)
    {
     CheckBox chk = new CheckBox();
     chk.Text = 文件.Name;
     chk.Location = new Point(x, y);
     y += 10;
     父容器[可以是Form,panel,groupbox...].Controls.Add(chk);
    }
      

  8.   

    动态的创建checkbox,地址不好控制,就是说,point是多少不直观。原来我遇到这个问题的时候,因为我知道最多会有大概10个左右,而现在只需要4个,所以我拖到界面上10个,然后4个visible为true,其他为false.
    等用到的时候,再设置为true.
      

  9.   


    /// <summary>
            /// 初始化放映厅座位
            /// </summary>
            /// <param name="seatRow">行数</param>
            /// <param name="seatLine">列数</param>
            /// <param name="tb"></param>
            private void InitSeats(int seatRow,int seatLine,TabPage tb)
            {
                Label label;
                Seat seat;
                for (int i = 0; i < seatRow; i++)
                {
                    for (int j = 0; j < seatLine; j++)
                    {
                        label = new Label();
                        //设置背景颜色
                        label.BackColor = Color.Yellow;
                        //设置字体
                        label.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
                        //设置尺寸
                        label.AutoSize = false;
                        label.Size = new System.Drawing.Size(50, 25);
                        //设置座位号
                        label.Text = (j + 1).ToString() + "-" + (i + 1).ToString();
                        label.TextAlign = ContentAlignment.MiddleCenter;
                        //设置位置
                        label.Location = new Point(60 + (i * 90), 60 + (j * 60));
                        //所有的标签都绑定到同一事件
                        label.Click += new System.EventHandler(lblSeat_Click);
                        tb.Controls.Add(label);
                        labels.Add(label.Text, label);
                        //实例化一个座位
                        seat = new Seat((j + 1).ToString() + "-" + (i + 1).ToString(), Color.Yellow);
                        //保存的座位集合
                        cinema.Seats.Add(seat.SeatNum, seat);
                    }
                }
            }这是我写的 创建lable 的代码给你参考下