我希望在程序的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 ....开始),但这也没有用。主要问题是表单没有以任何方式显示在表单周围绘制的线条。
什么阻止我的代码显示新的边框?有没有更好的方法来重绘它(并且可能具有与默认边框相同的功能,即重新调整大小并在单击时移动表单)?
答案 0 :(得分:0)
我非常确定DrawRect
主要用于在表单客户端区域内绘图,但它可能是绘制一个矩形,而不是您想到的位置。更改为Pens.Red
或更明显的内容。
要绘制自定义边框,这应该有效:
ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle, Color.Red,
ButtonBorderStyle.Inset)
调试这种东西时,有助于使用像RED这样生动的颜色,黑色的1像素线很难注意到。对于自定义且相当大的see this article。