Программно изменить отдельные границы ячеек в WinForms DataGridView - PullRequest
1 голос
/ 15 июня 2009

Мне нужно программно изменить границу отдельных ячеек в WinForms DataGridView. При поиске в сети я обнаружил эту ссылку (http://bytes.com/groups/net-vb/501128-changing-datagridview-cell-borders-runtime), что является тем же, что я пытаюсь сделать; однако, здесь нет примера кода решения, а именно

"Так что вы можете наследовать от Класс DataGridViewCell и переопределяет метод AdjustCellBorderStyle, чтобы получить настроенная версия DataGridViewCell. Тогда вы можете использовать этот индивидуальный DataGridViewCell в вашем DataGridView. Замечания: В вашем настроенном DataGridViewCell вы должны предоставить Открытый член DataGridViewAdvancedBorderStyle, так что код DataGridView может установите эту информацию стиля границы элемента в ячейку. Тогда в Реализация AdjustCellBorderStyle, вы должны проверить это DataGridViewAdvancedBorderStyle публичный член и возвращает соответствующий DataGridViewAdvancedBorderStyle. Затем DataGridView PaintCells может использовать его для раскрась свою камеру. ".

Мне трудно понять, как реализовать это решение. Может кто-нибудь перевести вышеперечисленное в рабочий код VB.Net и привести пример его вызова для изменения границ отдельной ячейки?

1 Ответ

1 голос
/ 15 июня 2009

Вот готовый пример, который делает то, что вам нужно, просто скрытый среди дополнительных функций настройки цвета фона.

http://www.codeproject.com/KB/grid/hulihui_CustomDataGridVie.aspx

Ищите строки

// must draw border for grid scrolling horizontally 
e.Graphics.DrawRectangle(gridPenColor, rect1);  

Эта линия рисует границу ячеек, поэтому для изменения отдельной границы ячеек измените аргументы Event (класс CellBackColorEventArgs), чтобы включить любые свойства, которые вы хотите описать для границы. Затем в методе DrawCellBackColor нарисуйте границу на основе этих переданных свойств (и всего, что вы хотите нарисовать в ячейке)

...