ウィンドウフォームの枠線(フォームタイトルとの枠線)の色を変更したいです。私がcodeplexで見つけた例は、多すぎて紛らわしいです。もっと簡単なことで私を助けることができますか?
6 に答える
次のようにオーバーライドします。
protected override void OnPaint(PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, ClientRectangle, Color.[your_color], ButtonBorderStyle.Solid);
}
残念ながら、フォームの境界線はオペレーティングシステムによって描画されるため、これは複雑な作業です。それを回避する本当の方法はありません。
以下のCodePlexページのProjectDistributorリンクをクリックしないでください
ただし、カスタム境界線を描画するためのCodePlexプロジェクトを使用すると、これは非常に簡単になります。標準のフォームではなく、そのプロジェクトのSkinnedFormを使用してフォームを作成するだけで、機能するはずです。コードで別のことをする必要はありません。
前述のように、境界線の実際の色を変更するのは困難です。パネルを使用した上記のソリューションには、フォームのサイズを変更できないなどの制限があります。他の多くの制限なしで、かなり簡単なトリックを見つけました。
- フォームを作成する
- FormBorderStyle を None に設定
- パネルを4枚追加
- パネルの背景色を必要な境界線の色に設定します
- 上下左右に1つずつ固定
- 高さ (上/下) または幅 (左/右) を必要な境界線の太さに設定します。2~3枚はかなり良さそうです。
境界線のように見え、ウィンドウに合わせてサイズが変更され、他のものを必要なフォームにドロップできます。制限は、フォームに追加する最初のものとしてこれを行う必要があることです。
「ForeColor」の下には、「FormBorderStyle」という設定が必要です。VisualStudio 2015 でそれを編集できます。または、コントロール パネルのパスに移動して、「Control Panel\Appearance and Personalization\Personalization」のようにすることもできます。 「色」と呼ばれる2番目の設定は、それを希望する色に変更できます。これにより、すべてのプログラムのボーダーの色が設定した色に変更されます。