Вы можете подписаться на 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