0

在 TableLayoutPanel 中,其中一行通过函数用红色矩形突出显示:

ControlPaint.DrawBorder(MyTableLayoutPanel.CreateGraphics, RowRectangle, Color.Red, ButtonBorderStyle.Solid)

当我滚动面板时,矩形消失。

如何在滚动后保留它而不必在 TLP.Paint 事件上重新绘制它?

我已经尝试过:

DrawRectangle()
MyTableLayoutPanel.Invalidate() 'And also Invalidate(True)

但它不起作用;更糟糕的是,使用 Invalidate 时,它​​会在执行任何操作之前清除矩形。

4

1 回答 1

0

CreateGraphics是一个非常临时的图。您应该使用该绘制事件中的 Graphic 对象:

Private Sub MyTableLayoutPanel_Paint(sender As Object, e As PaintEventArgs) _
                                     Handles MyTableLayoutPanel.Paint

  ControlPaint.DrawBorder(e.Graphics, rowRectangle, Color.Red, _
                          ButtonBorderStyle.Solid)
于 2013-04-09T14:01:07.840 回答