我有一个表单,其中属性FormBorderStyle设置为'None',顶部有一个自定义栏,用于拖动和按钮。
现在我想给表单一个边框,因为它是一个子表单,父表单与子表单具有相同的背景颜色,因此很难看到子表单。 不,我不能/不会改变背景颜色。
帮助
答案 0 :(得分:3)
有一种方法无需设置背景图像和/或固定大小的表单。所以这是我猜的最恰当和简单的方法。假设您有一个名为Form1
的表单,您只需要:
Private Sub Form1_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle, Color.Black, ButtonBorderStyle.Solid)
End Sub
另一种方法是,如果要使用Windows版本提供的默认边框:
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Sizable
Me.Text = ""
Me.ControlBox = False
End Sub
答案 1 :(得分:1)
您可以使用 Visual Basic .NET Power Pack ,您可以下载here。它有一个名为LineShape
的控件,可以放在无边框表格的边缘,就像我目前正在处理的这个程序一样。
北边界只是LineShape
,BorderWidth
设置为60
,其他边框'BorderWidth
设置为10
。
答案 2 :(得分:0)
除了边框外,你可以使用BackgroundImage
透明。
答案 3 :(得分:0)
您可以在表单绘制事件中使用它:
ControlPaint.DrawBorder(e.Graphics, Me.ClientRectangle, Color.Black, ButtonBorderStyle.Solid)
这将仅绘制客户端边框,如果要调整表单大小,或者最大化表单,请在表单调整大小事件上使用Me.Refresh()
,以便表单重绘其边框。
答案 4 :(得分:0)
在看到PDF的答案后,我对表格上的TableLayouPanel做了同样的事情:
/mnt/c/