在Winforms C#(綁定到DataTable)的DataBound DataGridView中,我試圖確定用戶是否選擇了每次都會自動添加的NewRow
數據被添加到網格中。如果選擇NewRow
,我想忽略刪除行點擊,但在下面的2個屏幕截圖中,datagridview1.CurrentRow.Index
返回相同的值。任何幫助深表感謝!顯示相同'CurrentRow'索引的最後和倒數第二行
在上述兩種情況下,datagridview1.CurrentRow.Index
顯示1
我嘗試使用datagridview1.CurrentRow.IsNewRow
但是因爲指數顯示相同的,這顯然是行不通的。
這是deleteRow
按鈕
private void btnDeleteRow_Click(object sender, EventArgs e)
{
try
{
int currentRowIndex = dataGridView1.CurrentRow.Index; // TESTING DURING DEBUG, THIS PRODUCES THE SAME VALUE FOR BOTH ROWS PICTURED
if (dataGridView1.CurrentRow.IsNewRow) return;
var counter = dataGridView1.CurrentRow.Cells[0].Value;
dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
new SqlCommand("DELETE FROM IncomingVisitorList WHERE Counter = " + counter, SqlConnection).ExecuteNonQuery();
}
catch { } // SUPPRESS/IGNORE NULL ROW EXCEPTION
}
你在哪裏代碼確定選定的行..你如何有這個設置,以確定是否CELL或行或全行被選中..你能告訴你實際的代碼,你試圖確定行索引或當前行他們在? – MethodMan
@MethodMan看到更新。 –
我不確定問題是什麼......您發佈的代碼不會爲兩個不同的行返回相同的值。我在發佈的代碼中放置了一個消息框來顯示'currentRowIndex',並且這些數字與您描述的不一樣。我錯過了什麼嗎? – JohnG