以编程方式更改WinForms DataGridView中的单个单元格边框

时间:2009-06-15 10:09:06

标签: winforms datagridview border cell

我需要以编程方式更改WinForms DataGridView中单个单元格的边框。在'网上搜索时,我发现这个链接(http://bytes.com/groups/net-vb/501128-changing-datagridview-cell-borders-runtime)与我正在尝试的相同;但是,没有解决方案的代码示例,即

“所以你可以继承 DataGridViewCell类并重写AdjustCellBorderStyle方法来获取 DataGridViewCell的定制版本。然后你可以使用这个定制 DataGridView中的DataGridViewCell。 注意: 在您自定义的DataGridViewCell中,您应该公开一个 DataGridViewAdvancedBorderStyle公共成员使DataGridView代码可以 将此成员边框样式信息设置为单元格。然后在 AdjustCellBorderStyle实现,你应该检查一下 DataGridViewAdvancedBorderStyle公共成员并返回相应的 DataGridViewAdvancedBorderStyle。然后DataGridView PaintCells可以使用它 画你的细胞。“。

我很难理解实施此解决方案。有人可以将上述内容翻译成工作的VB.Net代码并提供一个调用它来更改单个单元格边框的示例吗?

1 个答案:

答案 0 :(得分:1)

这是一个现成的示例,可以满足您的需要,只是隐藏在设置背景颜色的额外功能中。

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

寻找行

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

该行绘制单元格边框,因此要更改单个单元格边框,请更改Event args(CellBackColorEventArgs类)以包含要描述边框的任何属性。然后在DrawCellBackColor方法中根据传入的属性(以及您想在单元格中绘制的任何其他内容)绘制边框