天天看點

Winform開發--資料從一個DataGridView轉移到另一個DataGridView

    做Winform開發,對需求的實習是從一個DatagridView中選擇資料,并複制到另一個DatagridView 中,之前BS開發做過類似效果,使用DataGridView肯定沒問題。

    将DataGridView1中的資料複制到DataGridView2中;設定DataGridView1的第一列為複選框,DataGridView1的兩個事件,協作實作我們想要的效果,dataGridView1_CurrentCellDirtyStateChanged,dataGridView1_CellValueChanged。

代碼:

<span style="font-family:SimSun;font-size:18px;"> private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
        {
            if (dataGridView1.IsCurrentCellDirty)
            {
                dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);   //送出

            }
        }

        private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {</span>
           
<span style="font-family:SimSun;font-size:18px;">            if (e.RowIndex >= 0 && e.RowIndex != -1 && !dataGridView1.Rows[e.RowIndex].IsNewRow)      //行和列,并且行中存在資料;
            {
                if (e.ColumnIndex == 0)
                {

                    if ((bool)this.dataGridView1[e.ColumnIndex, e.RowIndex].Value == true)
                    {
                        dataGridView2.Rows.Add();            //現在要複制到的DataGridView中添加一個行,然後下面循環列,進行指派;
                        for (int j = 0; j < dataGridView1.Rows[e.RowIndex].Cells.Count; j++)
                        {

                            dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[j].Value = dataGridView1.Rows[e.RowIndex].Cells[j].Value;
                           
                        }

                    }
                }
            }
        }</span>
           

總結

    不斷地出現新的需求,不斷地嘗試新的實作方式,實踐越多,越成熟,但是開發周期有限,一切還是應該以傳遞産品為重要緊急的事情。