フォームアプリケーションのフラットデザインについて への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 SSD  (社会人) 投稿日時 2022/11/19 11:31:27
魔界の仮面弁士 様

テストプロジェクトでテスト用プロシージャを記述したクラスにコンストラクタを記述し、その中でApplication.EnableVisualStyles()を呼び出したところいけました!
ありがとうございます。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2022/11/17 19:16:46
> 後者のプロジェクトというのが単体テストプロジェクトです。

自作テスターの場合は、「単体テスト DLL を呼び出す側 の EXE」で、
Application.EnableVisualStyles() を呼び出しておく必要があります。
「テスターによって起動される EXE」では無い事に注意。

既存のテスター(VSTest.Console.exe とか、VS のテスト エクスプローラーなど)で、
呼び出し元の処理を編集できないようなケースでは、ちょっと無理矢理ですが、単体テストクラスの
Shared Sub New() にて Application.EnableVisualStyles() を呼んでおくという手もあります。
投稿者 SSD  (社会人) 投稿日時 2022/11/17 14:45:56
魔界の仮面弁士 様

言語はVisualBasicです。
後者のプロジェクトというのが単体テストプロジェクトです。
ターゲットフレームワークは .NET Framework  4.7.2で、
アプリケーションの種類をWindowsフォームアプリケーションにし、
  「アプリケーション フレームワークを有効にする」
  「XP Visual スタイルを有効にする」
の2つがONであることも確認しましたが、フラットデザインになっていませんでした。

具体的にはテストプロジェクトにボタンとテキストボックスだけを配置したフォームを作り、
テスト用のプロシージャからそのフォームとメッセージボックスを表示しましたが、
双方ともコントロールの凹凸が目立つ古いデザインでフラットデザインにはなっていませんでした。

以前空のプロジェクトからフォームを作成したときもフラットデザインにならなかった記憶があります。
その時も上記2点のチェックを確認しONにしましたがデザインは変更されませんでした。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2022/11/17 11:34:10
VB.NET だとしたら、プロジェクトのプロパティを開いて、
アプリケーションの種類を「Windows アプリケーション」にした後、
  「アプリケーション フレームワークを有効にする」
  「XP Visual スタイルを有効にする」
の 2 つが on/off いずれになっているかを確認してみてください。

アプリケーション フレームワークを用いていない場合や、C# などのプロジェクトの場合は
スタートアップとなる Main プロシージャー内において、Form がロードされるよりも前に
Application.EnableVisualStyles() メソッドおよび
Application.SetCompatibleTextRenderingDefault が
明示的に呼びだされているかを確認してみてください。

投稿者 SSD  (社会人) 投稿日時 2022/11/17 09:30:07
最初に.NET frameworkのフォームアプリケーションを選択して開始したプロジェクトとそうでないプロジェクトがあり、両者の参照設定は同じにしています。
前者はボタンなどに凹凸がなく(フラットデザイン)、後者は凹凸がある状態です。
後者も前者と同様にフラットデザインにしたいのですが、どこで設定すればよいのでしょうか?