无法在绘制事件上重绘表单边框

时间:2014-05-23 15:06:38

标签: vb.net forms visual-studio-2013

我希望在程序的GUI中在启动画面(即加载的第一个表单)之后为我的主表单创建自定义边框。正如GoogleGods所建议的那样,我将FormBorderStyle设置为“None”。然后在类的paint命令中,我添加了这段代码:

Private Sub MainWindow_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
    e.Graphics.DrawRectangle(Pens.Black, Me.Bounds)
  '  ControlPaint.DrawBorder(e.Graphics, ClientRectangle, Color.Black,    ButtonBorderStyle.Solid)
 End Sub

我也尝试使用注释掉的部分(从ControlPaint.draw ....开始),但这也没有用。主要问题是表单没有以任何方式显示在表单周围绘制的线条。

什么阻止我的代码显示新的边框?有没有更好的方法来重绘它(并且可能具有与默认边框相同的功能,即重新调整大小并在单击时移动表单)?

1 个答案:

答案 0 :(得分:0)

我非常确定DrawRect主要用于在表单客户端区域内绘图,但它可能是绘制一个矩形,而不是您想到的位置。更改为Pens.Red或更明显的内容。

要绘制自定义边框,这应该有效:

ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle, Color.Red, 
            ButtonBorderStyle.Inset)

调试这种东西时,有助于使用像RED这样生动的颜色,黑色的1像素线很难注意到。对于自定义且相当大的see this article