datagridview動態添加列和行以及添加之後刷新操作

有的時候需要動態的添加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的結果逐行添加進去。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章