【问题标题】:Programmatically Change Individual Cell Borders in a WinForms DataGridView以编程方式更改 WinForms DataGridView 中的单个单元格边框
【发布时间】:2010-11-02 23:29:36
【问题描述】:

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

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

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

【问题讨论】:

    标签: winforms datagridview border cell


    【解决方案1】:

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

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

    寻找线条

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

    那条线绘制了一个单元格边框,因此要更改单个单元格边框,请更改事件参数(CellBackColorEventArgs 类)以包含您想要描述边框的任何属性。然后在 DrawCellBackColor 方法中根据这些传入的属性(以及你想在单元格中绘制的任何其他内容)绘制边框

    【讨论】:

    • 花了一些功夫,但我能够让链接中的代码按照我的意愿运行。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    相关资源
    最近更新 更多