使用DrawRect或DrawBorder时,防止过度包装的线条绘制

时间:2014-01-24 09:34:14

标签: vb.net winforms visual-studio-2010 visual-studio

enter image description here

Private Sub pancontrols_Paint(sender As Object, e As PaintEventArgs) Handles pancontrols.Paint

    e.Graphics.Clear(Color.Yellow)
    Dim borderWidth As Integer = 1
    Dim theColor As Color = Color.Gray
    ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle, theColor, borderWidth, ButtonBorderStyle.Solid, theColor, borderWidth, ButtonBorderStyle.Solid, theColor, borderWidth, ButtonBorderStyle.Solid, theColor, borderWidth, ButtonBorderStyle.Solid)
    MyBase.OnPaint(e)
End Sub

代码如上所述。

当我调整大小时,特别是调整大小以增加宽度时,画线会保留。

即使我用纯色清除e.Graphics,问题仍然存在。

有什么简单的方法可以防止这种情况吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试使用面板构造函数中的resize事件使其无效:

Public Sub New()
  Me.DoubleBuffered = True
  Me.ResizeRedraw = True
End Sub