C # DataGridViewButtonColumn и событие CellContentClick - PullRequest
0 голосов
/ 20 мая 2018

Если у вас есть Datagridview с 2 столбцами, один представляет собой TextBoxColumn, а другой - ButtonColumn:

Выберите текстовую ячейку.Теперь выделите / выделите текст внутри ячейки, и при выборе (удерживая кнопку мыши нажатой), и если вы переместите курсор мыши на соседний ButtonColumn и отпустите кнопку мыши, то DatagridView вызовет CellContentClick для столбца кнопки, даже если я сделал MouseDown внутри текстовой ячейки.

Я ожидаю, что для запуска CellContentClick оба MouseDown и MouseUp должны выполняться в одной и той же ячейке.Мои пользователи также ожидают этого.

Кто-нибудь знает обходной путь / исправление для этого?

1 Ответ

0 голосов
/ 20 мая 2018

Я обычно избегаю использования CellContentClick и выбираю CellClick.

Это позволяет избежать не только этого странного поведения, но и других ловушек CellContentClick: пользователь должен фактически нажать на текст, чтобы он работал,не пустое пространство вокруг него.

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

Но CellClick будет нормально работать для обычных, а также для кнопок и других элементов.

Да, MSDN говорит об использовании его для DataGridViewButtonColumns, но это только возможное использование и ни в коем случае не требуется.

...