簡體   English   中英

在未綁定的數據網格視圖中刪除多行

[英]Deleting multiple rows in an unbound datagridview

我有一個項目,該項目從SQL數據庫讀取行並將其顯示在datagridview中。 這部分效果很好。 我想通過刪除網格中的每個未選擇的行來顯示這些記錄的子集。 這是代碼:

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    if (!row.Selected)
    {
         if (!row.IsNewRow)
         {
              dataGridView1.Rows.Remove(row);
            //dataGridView1.Rows.Remove(dataGridView1.CurrentRow);
         }
     }    
}

它從下至上刪除所選區域,並保留上面未選擇的行,或者刪除所選和未選擇的行。

有人能指出我正確的方向嗎?

這些行隨着其他行被刪除而被更改,因此某些元素被錯誤地跳過。

您可以使用2個循環:第一個循環反轉選定的項目,第二個循環刪除選定的項目(這是反轉之前先前未選擇的項目)。

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    // invert row selections
    if (!row.Selected)
    {
        if (!row.IsNewRow)
        {
            row.Selected = true;
        }
    }
    else
    {
        row.Selected = false;
    }
}

// remove selected rows
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
    dataGridView1.Rows.Remove(row);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM