2012-07-04 6 views
4

В настоящее время я использую этот код:Удаление Выбранные строки в datagridview в C#?

foreach (DataGridViewRow item in this.dataGridView1.SelectedRows) 
{ 
    dataGridView1.Rows.RemoveAt(item.Index); 
} 

У меня есть галочки в первом столбце, но с этим кодом, то получит только выбранный. Как получить выбранные контрольные боксы только удалить со строкой?

ответ

5

Вы хотите что-то вроде

for (int i = 0; i < dataGridView1.Rows.Count; i++) 
{ 
    if (Convert.ToBoolean(dataGridView1.Rows[i] 
          .Cells[yourCheckBoxColIndex].Value) == true) 
    { 
     dataGridView1.Rows.RemoveAt(i); 
    } 
} 

Я надеюсь, что это помогает.

1

попробовать что-то вроде этого:

foreach(DataGridViewRow row in this.dataGridView1.Rows) 
{ 
    var checked = Convert.ToBoolean(row.Cells[0].Value); // Assuming the first column contains the Checkbox 
    if(checked) 
     dataGridView1.Rows.RemoveAt(row.Index); 
} 
1

Это может быть что-то вроде этого ... Это пример для ListView, однако понятие почти нет. Прокрутите элемент и найдите идентификатор флажка и удалите выбранные. Надеюсь это поможет.

public void btnDeleteClick(object sender, EventArgs e) 
    { 
     // Iterate through the ListViewItem 
     foreach (ListViewItem row in ListView1.Items) 
     { 
      // Access the CheckBox 
      CheckBox cb = (CheckBox)row.FindControl("cbxID"); 
      if (cb != null && cb.Checked) 
      { 
       // ListView1.DataKeys[item.DisplayIndex].Values[0].ToString() 
       try 
       { 

       } 
       catch (Exception err) 
       { 

       } 
      } 
     } 
    } 
0

Попробуйте это:

if (dgv.SelectedRows.Count>0) 
     { 
      dgv.Rows.RemoveAt(dgv.CurrentRow.Index); 
     } 
Смежные вопросы