簡體   English   中英

如何在C#中刪除自動Datagridview

[英]How To Remove Automatic Datagridview in c#

我有如下的datagridview:

| FIleName      | Amount     | Description |
--------------------------------------------
| Test001       | 1000       |             |
| Test002       | 1000       |             |
| Test003       | 1000       |             |

我嘗試在datagridview中自動執行使用thread.sleep的行。 當我執行按鈕StartAuthorization時,我想一一執行數據行,如果執行后刪除行,則刪除行; 我嘗試了這段代碼:

private void button7_Click_1(object sender, EventArgs e)
{
 Thread.Sleep(10000);
 while (dataGridView1.Rows.Count > 0)
 {
  RunAtomationRun(); // method to execute rows in datagridview
  int selectedrowindex = dataGridView1.SelectedCells[0].RowIndex;
  DataGridViewRow selectedRow = dataGridView1.Rows[selectedrowindex];
  DataGridView1.Rows.RemoveAt(this.dataGridView1.SelectedCells[0].RowIndex);
 }
}

但是行不通? 任何想法?

在使用selectedrowindex之前,您應該檢查是否實際選擇了行。 但是您的函數如何選擇要處理的行?

您應該真正將行傳遞給函數,並在函數成功后將其刪除:

private void button7_Click_1(object sender, EventArgs e)
{
 Thread.Sleep(10000);
 while (dataGridView1.Rows.Count > 0)
 {
  DataGridViewRow currentRow = dataGridView1.Rows[0];
  RunAtomationRun(currentRow); // method to execute rows in datagridview
  DataGridView1.Rows.Remove(currentRow);
 }
}

或者讓函數成功刪除行,我想它已經知道它正在處理的工作:

private void RunAtomationRun()
{
 // Find row to work on
 DataGridViewRow currentRow = ...

 // Work on row...

 // Delete Row on success
 DataGridView1.Rows.Remove(currentRow);
}

兩種變體都可以解決您的問題。

暫無
暫無

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

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