在TableLayoutPanel上滚动时保留图纸

时间:2013-04-09 12:03:12

标签: .net vb.net controls

在TableLayoutPanel中,其中一行突出显示,并在函数周围显示一个红色矩形:

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

滚动面板时,矩形消失。

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

我已经尝试过了:

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

但它不起作用;更糟糕的是,使用Invalidate,它会在做任何事情之前清除矩形。

1 个答案:

答案 0 :(得分:0)

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

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

  ControlPaint.DrawBorder(e.Graphics, rowRectangle, Color.Red, _
                          ButtonBorderStyle.Solid)