2011-07-20 52 views
28

新しい言語を理解することは非常にうんざりですが、最近はC#を学んでいます。だから私は新しいアプリケーション(この場合は新しいWindowsフォームアプリケーション)を作成するときに起こっていることをすべて知りたい。私は1つを作成し、Visual Studioから生成されたコードを与えられ、1行はApplication.EnableVisualStyles()でした。Application.EnableVisualStyles()は何もしませんか?

MSDNに関するいくつかの調査を行い、この記事が見つかりました:Application.EnableVisualStyles()私は、その行をコメントアウトしたときにボタンが表示されないと予想している例を実行しました。何も起こらなかった!何も変わっていないようだ。私はこれが非常に基本的な例だと知っていますが、何か変わってはいけませんか?これがMain()プロシージャで非常に重要なのであれば、私は行方不明になっていますか?

+5

+1誰かが特定のAPIが何かを尋ねなければならないときは、APIのドキュメントが悪いことを知っています。 –

答えて

30

はい、それはありませんが、あなたはそうあなたはそれが何であるかを見ることはできません特定の設定は、お使いのOSでオンになっている必要があります。

この回答は、同様にあなたに面白いかもしれません。他のアプリケーションでのボタンは、あなたが常に意志後、第2のスクリーンショットのように見える場合

Application.EnableVisualStyles(); 

With visual themes

// Application.EnableVisualStyles(); 

Without visual themes

:ここ

は私のシステムで同じアプリケーションのいくつかのスクリーンショットですApplication.EnableVisualStyles()を使用しているかどうかにかかわらず、テーマが設定されていないボタンは、 OSを再起動する方法はOSによって異なりますが、通常はのパフォーマンス >>ビジュアルエフェクトダイアログに行きます。

12

スクロールバーやボタンなどのクリエイティブな素材の図が表示されます。 falseの場合は、など、プレーンな灰色の在庫コントロールを取得

enter image description here

8

EnableVisualStyles()は、そのメソッドが実行されたときにボタンが今、視覚的に描かれていることを意味するものではありません、それはビルトインを使用することを意味しますWindowsクラシックWindowsのルックアンドフィールの代わりにスタイルコントロールをテーマにしたWindows。コンピュータがスタイルなしで実行されている場合は、違いは見られません。 Should I call Application.EnableVisualStyles() on terminal services?

3

これは私があいまいなアプリケーションのクラッシュの問い合わせに応じて、マイクロソフトのサポートから得たものである:

要旨はクラッシュがCOMCTL32.DLLのバージョン5.0における既知のバグであるということである(Windowsコモンコントロール)、 Windows OSに付属しています。このバグは、共通コントロールのバージョン5.0では修正されません。そのバージョンは、Windows XPより前のアプリケーション用です。その後、Windows XP以降に含まれるcomctl32.dllのバージョン6.0で修正されています。 comctl32.dll(5.0および6.0)の両方のバージョンは、Windows XP以降のすべてのバージョンのWindowsに含まれています。古いものは、非常に古いアプリケーションの下位互換性の目的のためだけにあります。

問題を解決するには、アプリケーションを変更して、comctl32.dllのバージョン6.0を使用するようにする必要があります。 Windows Formsアプリケーションでは、これはアプリケーションの起動時にApplication.EnableVisualStylesメソッドを呼び出すことによって行われます。 C#プロジェクト内で開発している場合は、アプリケーションのエントリポイント内でApplication.Run呼び出しの前に呼び出しを追加することでこれを行うことができます。たとえば、次のように

[STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); //Add this line 
     Application.Run(new Form1()); 
    } 

は、Visual Basic .NETプロジェクトである場合は、あなたのプロジェクトのプロパティに行くし、「有効にするアプリケーションフレームワーク」と「XPビジュアルスタイルを有効にする」のチェックボックスを選択することで、このに選ぶことができますアプリケーションのプロパティページで。

関連する問題