Есть ли способ отключить выбор перетаскивания в DataGridView без отключения MultiSelect?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ отключить выбор перетаскивания в DataGridView без отключения MultiSelect?

Сообщение Anonymous »

Я пытаюсь отобразить данные в формате таблицы и позволить пользователям выбирать ячейки. Однако они должны иметь возможность выбирать только 1 ячейку в столбце, поэтому требуется MultiSelect.
Пример выбора 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;
}
}
}
Я пытался отслеживать удержание/нажатие левой кнопки мыши (ЛКМ) с помощью событий CellMouseDown и MouseUp + TableViewer.ClearSelection( ) внутри события CellMouseEnter (если удерживается ЛКМ):
(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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Есть ли способ отключить выбор перетаскивания в DataGridView без отключения MultiSelect?
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Есть ли способ отключить выбор перетаскивания в DataGridView без отключения MultiSelect?
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Есть ли способ отключить выбор перетаскивания в DataGridView без отключения MultiSelect?
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Есть ли способ отключить выбор перетаскивания в DataGridView без отключения MultiSelect?
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Есть ли способ отключить выбор перетаскивания в DataGridView без отключения MultiSelect?
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»