プロパティ FormBorderStyle が「None」に設定され、ドラッグとボタン用のカスタムバーが上部にあるフォームがあります。
子フォームであり、親フォームの背景色が子フォームと同じであるため、子フォームが見えにくいため、フォームに境界線を付けたいと思います。いいえ、背景色を変更できません/変更しません。
ヘルプ
プロパティ FormBorderStyle が「None」に設定され、ドラッグとボタン用のカスタムバーが上部にあるフォームがあります。
子フォームであり、親フォームの背景色が子フォームと同じであるため、子フォームが見えにくいため、フォームに境界線を付けたいと思います。いいえ、背景色を変更できません/変更しません。
ヘルプ
背景画像や固定サイズのフォームを設定する必要がない方法があります。したがって、これは私が推測する最も適切で簡単な方法です。という名前のフォームが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
ここからダウンロードできるVisual Basic .NET Power Packを使用できます。私が現在取り組んでいるこの 1 つのプログラムのように、ボーダーレス フォームのエッジに配置できるこの Control が呼び出されます。LineShape
北の境界線は に設定されているだけLineShape
で、他の境界線は に設定されています。BorderWidth
60
BorderWidth
10
BackgroundImage
たぶん、境界線以外で透明を使用できます。
theGD による回答を見た後、フォームの TableLayouPanel に対して同じことを行いました。
Private Sub TableLayoutPanel1_Paint(sender As Object, e As PaintEventArgs) Handles TableLayoutPanel1.Paint
ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle, Color.DarkOrange, ButtonBorderStyle.Solid)
End Sub