none
C# WindowsアプリケーションでFormの枠の色を設定したい RRS feed

  • 質問

  • 最近のWindows10では、例えばVS C#2012で、Windowsフォーム アプリケーションを作ったとき、Formの枠の色が消えます。PCによって違うのかもしれませんが、具体的には白色になります。Displayの配色調整はdefaultで最適になっていると思われます。

    Formの枠とは、Form1表示やキャンセル、Closeボタン?などがdefaultで配置されている領域です。例えば、Win7で作ったWindowsフォームアプリケーションの綺麗なダイヤログが、最近のWindows10では色が台無しになります。せめてForm枠の配色だけでも近づけたいと思っております。

    ご指導、よろしくお願いします。

    Hunman manより

    2020年5月12日 2:35

すべての返信

  • その部分は Windows の持ち物なので、原則としてアプリケーション側で変えることはできません。
    (枠の部分をがりがり自分で描画する気合いがある場合を除く。注:簡単ではありません)
    2020年5月12日 3:17
    モデレータ
  • codeprex に、こんなのがあります。

    「CustomerBorderForm」
    https://archive.codeplex.com/?p=customerborderform

    アーカイブをダウンロードしソースコードを読んでみてください。
    めちゃめちゃ大変なのがわかると思います。

    ディスカッションの履歴が 2006年あたりなので、たぶん XP が対象だったのでしょう、Windows 10 では不具合が目立ちます。

    Vista で DWM(デスクトップウインドウマネージャ)が登場し、非クライアント領域を書き換えるのは非常に面倒になりました。

    枠を消して、クライアント領域に枠を描画したほうがコード量は少なくなりそうです。
    これなら OS の影響も受けません。

    2020年5月12日 7:19
  • 補足で、

    Windows 7とWindows 10とで例えばメモ帳を見比べると理解できると思います。

    2020年5月12日 8:19
  • isao1_1000さん、こんにちは。フォーラムオペレーターのクモです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    Formの枠はオペレーティングシステムによって描画されます。
    Form枠の色を変更するために、パネルを使用して枠を真似してみてください。

    次のリンクの方法で試してみてください。
    How to change the form border color c#?(英語となりますが)


    どうぞよろしくお願いいたします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2020年5月15日 2:36
    モデレータ