同步绘制矩形并在datagridview中滚动

时间:2010-11-05 17:40:26

标签: c# winforms datagridview scroll drawing

我目前正在研究数据网格视图的单元格选择功能,我在单元格周围绘制矩形以模拟选区,使用矩形的坐标和大小。当我向下或向右滚动以选择更多单元格时会出现问题。在选择时,矩形以相同的尺寸和参数绘制,而不管哪个单元格被矩形限制。

我想知道如何将我的矩形绘图与滚动同步,以便在矩形中选择/限制相同的单元格。

对此有任何帮助或指示。

由于

1 个答案:

答案 0 :(得分:1)

我不知道您目前使用的是哪种技术,但值得一提的是,通过处理DataGridView事件直接在Paint控件上绘画是不明智的。

您必须将绘制代码分解为特定单元格和/或行的边界,并在CellPainting或“RowPostPaint”事件中绘制。要在几个单元格周围绘制一个矩形,您可以在受影响的单元格的边框内绘制,也可以在相邻的单元格中绘制。

CellBounds的{​​{1}}属性为您提供始终相对于单元格本身的坐标,这意味着它将自动适应DataGridViewCellPaintingEventArgs内的滚动。

修改:如何处理DataGridView事件以在特定单元格周围绘制自定义边框的示例:

CellPainting