WinForms フォームの境界線 色設定方法【C#】
Winformウィンドウの枠線の色を設定するには、カスタムスタイルを使用するか、枠線を描画することで実現できます。以下に2つの方法を示します:
カスタムスタイル: FormBorderStyleプロパティを使用して、ウィンドウの枠のスタイルを設定することができます。 FormBorderStyleプロパティでNoneを選択し、次にウィンドウのPaintイベントでカスタムの枠の色を描画します。具体的なコードは以下の通りです:
private void Form1_Paint(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, this.ClientRectangle, Color.Red, ButtonBorderStyle.Solid);
}
2、枠線の描画:WndProcメソッドをオーバーライドして、WM_NCPAINTメッセージでウィンドウの枠線の色を描画することができます。具体的なコードは以下の通りです:
protected override void WndProc(ref Message m)
{
const int WM_NCPAINT = 0x85;
base.WndProc(ref m);
if (m.Msg == WM_NCPAINT)
{
IntPtr hdc = GetWindowDC(m.HWnd);
if ((int)hdc != 0)
{
using (Graphics g = Graphics.FromHdc(hdc))
{
Rectangle rect = new Rectangle(0, 0, this.Width, this.Height);
g.DrawRectangle(new Pen(Color.Red, 2), rect);
}
ReleaseDC(m.HWnd, hdc);
}
}
}
以上の2つの方法を使用することで、Winformウィンドウの枠の色をカスタマイズすることができます。