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ウィンドウの枠の色をカスタマイズすることができます。

bannerAds