你可以訂閱CellClick
事件和測試值e.ColumnIndex
:
if (e.ColumnIndex == -1)
{
dataGridView1.Rows.RemoveAt(e.RowIndex);
}
或者你可以訂閱CellDoubleClick
事件(使用相同的代碼),如果你想更確定他們不會意外刪除行。
既然你要使用的按鈕,我會說試試這個:
if (dataGridView1.CurrentRow != null && dataGridView1.CurrentCell.ColumnIndex == -1)
{
dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
}
但由於某些原因,它總是返回0 CurrentCell.ColumnIndex
,即使你選擇的行頭。
我想你仍然可以訂閱CellClick
事件,但只是存儲在一個類級變量的當前行的索引,你可以在按鍵測試:
private bool isRowHeaderSelected = false;
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
isRowHeaderSelected = (e.ColumnIndex == -1);
}
private void deleteRowButton(object sender, EventArgs e)
{
if (isRowHeaderSelected)
dataGridView1.Rows.RemoveAt(dataGridView1.CurrentCell.RowIndex);
}
所以我不能只用我的按鈕?哦,對不起,我忘了提及它是一個使用的按鈕。只是不熟悉CellClick事件。 – puretppc
@puretppc看我的編輯。 –
由於它的工作:) – puretppc