Как предотвратить выбор ячеек в «новой» строке сетки данных, если выбрано несколько строк таблицы данных? - PullRequest
0 голосов
/ 24 мая 2011

Не спрашивайте, почему, но мне нужен способ запретить пользователю вводить ячейку в «новой» строке просмотра данных, пока у него выбрано несколько строк.

В настоящее время ячейка ввыбирается первый столбец строки, над которой курсор мыши находится во время щелчка и перетаскивания.Если щелкнуть ячейку, то строки больше не будут выделены, поэтому вы не сможете использовать какие-либо события щелчка ячейки или что-либо еще.

Любые предложения приветствуются.

PS непопробуйте отредактировать текущую ячейку из события выделенного события, это уже пробовали!

Спасибо,

Исаак

Ответы [ 2 ]

0 голосов
/ 24 мая 2011

Использовать событие CellStateChanged:

private void dataGridView_CellStateChanged(object sender, DataGridViewCellStateChangedEventArgs e) {
            if (e.Cell.OwningRow.IsNewRow && dataGridView.SelectedRows.Count > 1)
                e.Cell.Selected = false;
        }
0 голосов
/ 24 мая 2011

У меня есть идея, что элемент управления DataGridView имеет свойство RowState. Когда ваша строка выбрана, проверьте состояние. Я не уверен, в каких штатах (если я даже на стадионе) ... в любом случае, вы сможете проверить этот маршрут.

Я ищу больше информации ...

Хорошо ... думаю, я нашел достойный способ сделать это:

void DataGridView1_RowsAdded (object sender, DataGridViewRowsAddedEventArgs e)
{
    currentNewRow = e.RowIndex;
}

void DataGridView1_CellMouseClick(Object sender, DataGridViewCellMouseEventArgs e)
{
    if (e.RowIndex == currentNewRow)
    {
        // don't add to Selection
    }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...