Я создаю свой класс DataGridViewEx, унаследованный от DataGridView.
Я хочу создать метод для выбора первой ячейки в текущей строке, поэтому я написал это:
/// <summary>
/// The method selects first visible cell in a current row.
/// If current row is null, nothing is done.
/// If any cells are selected, they are unselected before selecting first cell.
/// </summary>
public void SelectFirstCellInCurrentRow()
{
if (CurrentRow == null) return;
ClearSelection();
foreach (DataGridViewCell cell in CurrentRow.Cells)
{
if (cell.Visible)
{
cell.Selected = true;
return;
}
}
}
И я хочу использовать это, например, так:
private void btnAdd_Click(object sender, EventArgs e)
{
bindingSource.Add(new Customer());
bindingSource.MoveLast();
grid.SelectFirstCellInCurrentRow();
grid.BeginEdit(false);
}
Моя задача - добавить новую строку в сетку и начать редактирование ее первой ячейки.
Этот код работает нормально, если grid.MultiSelect = false, но если grid.MultiSelect = true, тогда он не работает должным образом: все ячейки отменены, первая ячейка последней строки выбрана, но !!! ячейка в последнем ряду столбца, который был выбран последним, редактируется вместо первой ячейки!
Вот как это выглядит:
1) Я выбираю несколько ячеек:
_ http://img13.imageshack.us/img13/2528/beforeadd.gif
2) После нажатия кнопки «Добавить»:
_ http://img211.imageshack.us/img211/847/afteradd.gif
Заранее спасибо.
PS. Почему я не могу добавить изображения?