我在堆栈溢出中搜索到类似这样的东西"如何更改面板的边框颜色vb.net;没有找到结果,所以我删除了vb.net,只是这样键入,我找到了结果,但它只适用于C#,我没有C#那么好,也许我认为我可以翻译,但我只是认为翻译不会是100%准确,所以,这就是我问这个问题的原因。请帮助我如何在VB.Net中更改面板的边框颜色我已经在属性中设置了BorderStyle FixedSingle,但仍然无法更改面板的边界颜色。请帮助并告诉我如何更改面板的边框颜色,否则我们无法从属性中进行更改,我们可以通过编码进行更改,然后至少请给我代码。
正如您已经提到的,这个问题的c版本有多个答案。
以下是答案的简短摘要:
可能性1
最简单和无代码的方法如下:
- 将
Panel1
的BackColor
设置为所需的边框颜色 - 将
Panel1
的Padding
设置为所需的边界厚度(例如2;2;2;2
( - 在
Panel1
中创建一个Panel2
,并将Dock
-属性设置为Fill
- 将
Panel2
的BackColor
设置为所需的背景色
警告:不能使用透明背景
可能性2
在Paint
事件处理程序中绘制一个Border。
(从这个答案翻译成VB.NET。(
Private Sub Panel1_Paint(sender As Object, e As PaintEventArgs) Handles Panel1.Paint
ControlPaint.DrawBorder(e.Graphics, Panel1.ClientRectangle, Color.DarkBlue, ButtonBorderStyle.Solid)
End Sub
可能性3
创建自己的Panel
类,并在客户端区域中绘制边界。
(从这个答案翻译成VB.NET。(
<System.ComponentModel.DesignerCategory("Code")>
Public Class MyPanel
Inherits Panel
Public Sub New()
SetStyle(ControlStyles.UserPaint Or ControlStyles.ResizeRedraw Or ControlStyles.DoubleBuffer Or ControlStyles.AllPaintingInWmPaint, True)
End Sub
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
Using brush As SolidBrush = New SolidBrush(BackColor)
e.Graphics.FillRectangle(brush, ClientRectangle)
End Using
e.Graphics.DrawRectangle(Pens.Yellow, 0, 0, ClientSize.Width - 1, ClientSize.Height - 1)
End Sub
End Class