Пример выбора 1 ячейки в столбце:

В настоящее время у меня есть реализация, позволяющая использовать только 1 ячейку. выделенная ячейка для каждого столбца, и это работает до тех пор, пока я не попытаюсь перетащить выделение.
Пример выбора перетаскиванием:
Из того, что я видел, не существует встроенного способа отключить выбор перетаскивания, если требуется MultiSelect. должен быть включен.
Вот текущая реализация:
Код: Выделить всё
private void TableViewer_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
// Skip headers
if (e.RowIndex \< 0 || e.ColumnIndex \< 0)
{
return;
}
// Disable multiple selections within the same column
var selectedCells = gridViewTableViewer.SelectedCells.Cast();
foreach (DataGridViewCell cell in selectedCells)
{
if (cell.ColumnIndex == e.ColumnIndex)
{
// Another cell in the same column has already been selected.
cell.Selected = false;
}
}
}
(TableViewer — это DataGridView)
Код: Выделить всё
private void TableViewer_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
if (isMouseDown)
{
TableViewer.ClearSelection();
}
}
Код: Выделить всё
private void TableViewer_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
isMouseDown = true;
...
}
Код: Выделить всё
private void TableViewer_MouseUp(object sender, MouseEventArgs e)
{
isMouseDown = false;
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... abling-mul