C# 在DataGridView中通过行绘制线

C# 在DataGridView中通过行绘制线,c#,winforms,datagridview,.net-3.5,C#,Winforms,Datagridview,.net 3.5,我试图在DataGridView中通过行绘制线。其想法是完成甘特图。现在我已经可以画横栏了。但是,当一项任务前面有另一项任务时,我需要画一条连接它们的线 这就是我现在的处境: 我需要的是把连接线画成椭圆中的“跗6”和“跗7” 老实说,这看起来很棘手。请考虑使用这个。但我认为实现您需要的东西可能会很痛苦。尝试RowPostPaint事件,例如: e.Graphics.FillRectangle(Brushes.Red, 20, e.RowBounds.Top + 6,

我试图在DataGridView中通过行绘制线。其想法是完成甘特图。现在我已经可以画横栏了。但是,当一项任务前面有另一项任务时,我需要画一条连接它们的线

这就是我现在的处境:

我需要的是把连接线画成椭圆中的“跗6”和“跗7”


老实说,这看起来很棘手。请考虑使用这个。但我认为实现您需要的东西可能会很痛苦。

尝试
RowPostPaint
事件,例如:

e.Graphics.FillRectangle(Brushes.Red, 20, e.RowBounds.Top + 6, 
                         e.RowBounds.Width, CInt(e.RowBounds.Height / 2));

您是如何绘制甘特图红/蓝条的?是什么阻止您使用相同的方法绘制连接器?@digEmAll。所有条形图都绘制在一个唯一的单元格中,覆盖OnCellPaint。红色表示任务延迟,黑色表示准时。蓝色条表示任务,灰色条表示组,第一行的黑色条表示所有项目的进度。问题是,当我想画一条从一行开始到另一行结束的线时,我只能画第一行的线,那是我的绘图区域。我已经覆盖了OnCellPaint来画条了。即使看起来有很多细胞,也只有一个。问题是,当我想画一条从一行开始到另一行结束的线时,我只能画第一行的线,那就是我的绘图区域。是什么阻止了我在下一行找到单元格的位置并在那里绘图?嗯。也许我可以在DataGridView的图形对象上而不是单元格上绘制。今晚我会试着让你知道。谢谢,安德烈,我想你可以。至少我记得我几年前做过这件事,没有任何问题。我只是担心这会不会影响你的应用程序性能(取决于你要画多少画)。阿门。这里的问题是,行边界仅用于一行。@Nane,您没有得到它,它是为每一行渲染的,因此如果您要为特定行绘制,请调用if(e.RowIndex==something)e.Graphics…否则,请无条件地使用我的代码