现在的位置: 首页 > 综合 > 正文

datagridview动态添加列和行以及添加之后刷新操作

2013年06月09日 ⁄ 综合 ⁄ 共 956字 ⁄ 字号 评论关闭

有的时候需要动态的添加datagridview 的列名:

    System.Windows.Forms.DataGridViewTextBoxColumn[] Column = new DataGridViewTextBoxColumn[columnNum];
            for (int i = 0; i < columnNum; i++)
            {
                Column[i] = new DataGridViewTextBoxColumn();
            }
            Column[0].HeaderText = "检验单编号";
            Column[0].Name = "检验单编号";
            Column[0].ReadOnly = true;
            Column[0].DefaultCellStyle.BackColor = Color.LightSteelBlue;
            Column[0].ReadOnly = true;
            Column[1].HeaderText = "样本编号";
            Column[1].Name = "样本编号";
            int j = 2;
            foreach (DataRow row in dt.Rows)
            {
                if (j < columnNum)
                {
                    Column[j].HeaderText = row["QCITEM_NAME"].ToString();
                    Column[j].Name = row["QCITEM_NAME"].ToString();
                    j++;
                }
            }
            this.dgv.Columns.AddRange(Column);
            this.ResumeLayout(false);

在动态添加行和列的时候最后不要直接给datagridview 赋值DataSource。直接赋值DataTable往往会出现问题。

也要动态的将DataTable转换为逐行添加数据

      if (oldRowNum > 0)
            {
                foreach (DataRow row in ddt.Rows)
                {
                    object[] Array = new object[columnNum];
                    for (int i = 0; i < columnNum; i++)
                    {
                        Array[i] = row[i];
                    }
                    dgv.Rows.Add(Array);
                }
            }

还有一个重点就是在给datagridview 动态添加列的时候在添加完数据需要刷新,并清空datagridview 所有内容。

     dgv.Columns.Clear();

清空完成之后再Datatable的结果逐行添加进去。

抱歉!评论已关闭.