VB.Net - 更改面板的边框颜色



我在堆栈溢出中搜索到类似这样的东西"如何更改面板的边框颜色vb.net;没有找到结果,所以我删除了vb.net,只是这样键入,我找到了结果,但它只适用于C#,我没有C#那么好,也许我认为我可以翻译,但我只是认为翻译不会是100%准确,所以,这就是我问这个问题的原因。请帮助我如何在VB.Net中更改面板的边框颜色我已经在属性中设置了BorderStyle FixedSingle,但仍然无法更改面板的边界颜色。请帮助并告诉我如何更改面板的边框颜色,否则我们无法从属性中进行更改,我们可以通过编码进行更改,然后至少请给我代码。

正如您已经提到的,这个问题的c版本有多个答案。

以下是答案的简短摘要:

可能性1

最简单和无代码的方法如下:

  • Panel1BackColor设置为所需的边框颜色
  • Panel1Padding设置为所需的边界厚度(例如2;2;2;2(
  • Panel1中创建一个Panel2,并将Dock-属性设置为Fill
  • Panel2BackColor设置为所需的背景色

警告:不能使用透明背景

可能性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

最新更新