我是新手,刚接触C#想请问下我在FORM框架下知道行列数,想按行列数生成个checkbox的矩阵列表,然后根据checkbox的值对一个对应的2维数组赋值,请大侠贴个代码或大概讲下。。之前没接触过C#..谢谢!

解决方案 »

  1.   

    这个需要控制 checkbox 的location.X 和Y 坐标了
    循环 很简单那的
    每次new 一个 之后controls.add() 方法加到窗体上
      

  2.   

    那请问下最后怎么让那个二维数组知道对应的chekbox的值啊。。区分每个checkbox的id是怎么得到啊!谢谢
      

  3.   

           int[,] demoNums = new int[,] { { 2, 3, 4 }, { 5, 6, 7 }, { 8, 9, 1 } };        private void button1_Click(object sender, EventArgs e)
            {
                for (int ii = 0; ii < demoNums.GetLength(0); ii++)
                {
                    for (int jj = 0; jj < demoNums.GetLength(1); jj++)
                    {
                        CheckBox chkb = new CheckBox();
                        chkb.AutoSize = true;
                        chkb.Text = demoNums[ii, jj].ToString();
                        chkb.Top = 20+ 30 * ii;
                        chkb.Left = 20 + 60 * jj;
                        this.Controls.Add(chkb);
                    }
                }
            }
      

  4.   

    这个跟是不是C#无关! 是思路的问题!  通过同台给checkbox的NAME属性赋有规律的值 个人觉得比较好!
      

  5.   


    我也是这么想的。。但不太熟悉C#怎么通过NAME值来选定复选框,通过循环的i,j能作为名字访问么?
      

  6.   

    你的二维数组不一定就只能保存数值/布尔值
    可以定义一个类,二维数组每个元素都是这个类的实例,这个类里包含数值和一个Windows.Forms.Control的实例保存着对应的checkbox
    很笨的方法,不知道对LZ有没有用