簡體   English   中英

根據 Winforms 中的條件從 datagridView 中刪除行

[英]Delete rows from datagridView based on a condition in Winforms

當文本框的值更改時,將在 datagridview 中添加一行。 當文本框的值恢復為 0 時,將刪除同一行。

數據已添加,但我不知道如何根據條件從數據網格視圖中刪除記錄。

private void textBox1_TextChanged(object sender, EventArgs e)
{
    value = Convert.ToInt32(textBox1.Text);

    if (value == 2)
    {
      string[] row1 = { "Value is 2" }; //column name is column1
      dataGridView1.Rows.Add(row1);
    }

   if (value == 0)
    {
      // code to delete the row when Value is equal to 0 and the 
      //condition is data in column1 of datagridView = "Value is 2"
    }
}

誰能幫我刪除dataGridView1中的行/行?

在條件下,dataGridView1 的 column1 中的數據為“Value is 2”

存儲添加行的索引以確保刪除正確的行並且僅刪除最后添加的行。

int connectedRowId = -1;
private void textBox1_TextChanged(object sender, EventArgs e)
{
    value = Convert.ToInt32(textBox1.Text);

    if (value == 2)
    {
      string[] row1 = { "Value is 2" }; //column name is column1
      connectedRowId  = dataGridView1.Rows.Add(row1);
    }

   if (value == 0)
    {
      dataGridView1.Rows.RemoveAt(connectedRowId);
    }
}

您可以循環行並按值查找:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    value = Convert.ToInt32(textBox1.Text);

    if (value == 2)
    {
        string[] row1 = { "Value is 2" }; //column name is column1
        dataGridView1.Rows.Add(row1);
    }

    if (value == 0)
    {
        dataGridView1.Rows.RemoveAll(row => row.Cells[0].Value == "Value is 2");
    }
}

暫無
暫無

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

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