none
動態新增DataGridView RRS feed

  • 問題

  • 各位前輩:

    我寫了下面的程式碼,動態new一個DataGridView,然後做了一些假資料在DataTable後,將DataTable的資料倒給DataGridView,但是印出來的Columns.Count卻是0,我試過用工具直接拉一個DataGridView到form上面再倒資料,取得的值就是正確的,不知道是什麼原因,有請各位前輩開示,感謝!

     

                DataGridView dgvAdd = new DataGridView();
                DataTable dt=new DataTable();

                for (int i = 0; i < 3; i++)
                {
                    dt.Columns.Add(new DataColumn(i.ToString()));
                }

                for (int i = 0; i < 3; i++)
                {
                    DataRow dr = dt.NewRow();

                    for (int j = 0; j < 3; j++)
                    {
                        dr[j] = "";
                    }

                    dt.Rows.Add(dr);
                }

                dgvAdd.DataSource = dt;
                MessageBox.Show(dgvAdd.Columns.Count.ToString());

     

     

     

    2008年7月21日 上午 06:07

解答

  • 沒人收留他們, 它們就悻悻然的下場了...

     

    Code Snippet

            private void Form1_Load(object sender, EventArgs e)
            {
                DataGridView dgvAdd = new DataGridView();
                DataTable dt = new DataTable();

                for (int i = 0; i < 3; i++)
                {
                    dt.Columns.Add(new DataColumn(i.ToString()));
                }

                for (int i = 0; i < 3; i++)
                {
                    DataRow dr = dt.NewRow();

                    for (int j = 0; j < 3; j++)
                    {
                        dr[j] = "";
                    }

                    dt.Rows.Add(dr);
                }

                dgvAdd.DataSource = dt;
                this.Controls.Add(dgvAdd);
                dgvAdd.Dock = DockStyle.Fill;

                MessageBox.Show(dgvAdd.Columns.Count.ToString());


            }

     

     

    2008年7月21日 上午 06:27