我在dgv_Inventory_RowPostPaint()事件里添加一列CheckBox来进行删除多行的操作.该如何实现呢?
       private void dgv_Inventory_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
        {
            
           
            if (dgv_Inventory.Columns["rowid"] == null)
            {
                DataGridViewCheckBoxColumn dgchk = new DataGridViewCheckBoxColumn();
                dgchk.Name = "rowid";
                dgchk.HeaderText = "选择";
                dgchk.Width = 40;
                dgv_Inventory.Columns.Insert(1, dgchk);
            }
        }

解决方案 »

  1.   


      private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    DataGridViewRow row = dataGridView1.Rows[i];
                    if (Convert.ToBoolean(row.Cells["rowid"].Value))
                    {
                        dataGridView1.Rows.Remove(row);
                        i--;
                    }
                }
            }
      

  2.   

    添加一行模版列。CheckBox判断是否选中,再删除不就可以了
      

  3.   

    2楼这样写有点问题 ,如果开始没选中的话,值是null的,所以不能这样
    应该判断 
    if(row.Cells["rowid"].Value!=null && Convert.ToBoolean(row.Cells["rowid"].Value))
    {
    dataGridView1.Rows.Remove(row);
                        i--;
    }
      

  4.   

    private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    DataGridViewRow row = dataGridView1.Rows[i];
                    if (row.Cells["rowid"].Value==CheckState.Checked)
                    {
                        dataGridView1.Rows.Remove(row);
                        i--;
                    }
                }
            }
      

  5.   


                for (int i = 0; i < dataGridView1.Rows.Count; i++) 
                { 
                    if(dataGridView1.Rows[i].Cells["check列"].Value == null)
                    {
                       continue;
                    }
                    if((bool)(dataGridView1.Rows[i].Cells["check列"].Value))
                    {
                       //删除操作
                    } 
                }