#c# #datagridview #datagridviewcolumn
#c# #просмотр сетки данных #столбец datagridviewcolumn
Вопрос:
Обычно, чтобы переместить столбец в a DataGridView
, вы просто щелкаете и перетаскиваете. Однако, если вы прокручиваете непосредственно перед этой операцией (что довольно часто встречается при перемещении столбцов), вы должны щелкнуть по столбцу перед щелчком и перетаскиванием. Я подумал, что это как-то связано с DataGridView
потерей фокуса, поэтому я прослушал Scroll
события типа EndScroll
с горизонтальной полосы прокрутки и вызвал Focus()
DataGridView
там. Это не сработало. Кто-нибудь знает, как я могу перемещать столбцы без дополнительного щелчка в этом случае?
Комментарии:
1. Кто-нибудь? Любые комментарии, которые могут подтолкнуть меня в правильном направлении?
Ответ №1:
Это похоже на WinForms
ошибку.
Декомпиляция System.Windows.Forms
помогла мне найти решение: объявить DataGridView
дочерний класс и переопределить OnScroll
функцию таким образом :
protected override void OnScroll(ScrollEventArgs e)
{
base.OnScroll(e);
base.OnMouseUp(new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0));
}