Когда называется Datagridview Paint and Cellpainting?
У меня есть датагридвью dgv
скажем, с 3 из столбцов, которые я хочу повлиять вручную:
col1 : DataGridviewTextboxColumn, for displaying a number
col2 : DataGridviewTextboxColumn, used as a color indicator, without text. BackColor will will be changed later.
col3 : DataGridviewImageColumn
Другие столбцы связаны с их соответствующими DataPropertyName
базового Datasource
, 3 столбца выше не привязаны ни к одному DataPropertyName
и повлиять вручную, например, когда я хочу изменить изображение или цветовой индикатор.
Каждый раз, когда я влияю на DataSource
, Я делаю перепривязку источника данных и dgv.Invalidate()
обновить графику сетки.
- Когда и как я могу спросить
dgv
учитывать ручные значения в 3 редактируемых столбцах? Ранее я вручную влиял на 3 выше столбца внутриdgv_CellPainting
, Это будет работать, но CellPainting занимает много времени, и мы решили удалить его. Я пытался положить их внутрьdgv_Paint
(который я использовал для слияния заголовков), но он не принимает цвет и изображение.
С помощью CellPainting: прямоугольники для пробелов между строками, заливка фона, разделитель между строками, поля для изображения и цвета и т. Д. 3 столбца, к которым я обращаюсь, это первый столбец (индекс), столбцы цвета и изображения (в полях). Другое изображение постоянно.
Без CellPainting: Нет разделения строк и столбцов. Я создал псевдорядное разделение, установив горизонтальную границу ячейки сетки.
- Когда
CellPainting
а такжеPaint
называется? Каков порядок исполнения и чем они отличаются? Мое грубое понимание состоит в том, что они называются, когда ячейка / сетка "должны быть перекрашены". Но я замечаю, что они вызываются несколько раз, а не только когда я звонюInvalidate()
но даже когда я наводю указатель мыши на область сетки.
Спасибо всем.