日期:2014-05-17  浏览次数:21545 次

自动生成控件checkbox 换行问题
 public static void ChecckBoxGroup(GroupBox group, DataTable dt)//生成checkbox
       {
           for (int i = dt .Rows .Count-1 ; i >= 0; i--)
           {
               //RadioButton rb = new RadioButton();
               CheckBox rb = new CheckBox();
               rb.Dock = DockStyle.Left;
               rb.Top = group.Top + 10*i;
               rb.Tag = i.ToString();
               rb.Text = dt .Rows [i][0].ToString ();
               rb.Padding = new Padding(0, 0, 2, 0);
               rb.AutoSize = true;
             
               group.Controls.Add(rb);
           }

       
       }
这方法我写好了,不知道如何处理自动换行问题,checkbox 数量多了之后,后面的就看不到了。
假设设置一行显示5个。如何自动换行。

------解决方案--------------------
你这个根本就不可能实现你的要求。
        public void ChecckBoxGroup(GroupBox group, DataTable dt)//生成checkbox
        {
            int iRemain;
            int iCount = Math.DivRem(dt.Rows.Count - 1, 5, out iRemain);
            int index = dt.Rows.Count - 1;
            for (int i = 0; i < iCount; i++)
            {
                int left = 0;
                for (int j = 0; j < 5;j++ )
                {
                    CheckBox rb = new CheckBox();
                    rb.Tag = index.ToString();
                    rb.Text = dt.Rows[index][0].ToString();
    &nbs