2009-05-19 7 views
0

WinForms ProgressBarコントロールでは、フォアグラウンドカラーを設定できます。これは正常に動作しますが、前景の色の設定は、XPでは無視されるように見えます。WinForms:プログレスバーのフォアグラウンドカラーは常に緑色に表示されます。

同様にXPルーナは「スタイル」を無視しているようです:私は「連続」に設定しましたが、プログレスバーは常にブロックで描画されます。

これは正しい動作になっていますか?これを回避する方法はありますか?

答えて

2

Lunaビジュアルスタイルを無効にするには、自動生成されたProgramクラスのApplication.EnableVisualStyles()への呼び出しを削除します。

これはあなたが条件付きでVistaの視覚的なスタイルは、Styleプロパティを尊重するので、IIRCは(テストすることはできません、OSに依存し、それを呼び出すことができますのWindows 2000のような

を見て、そのポイントの後に作成したフォーム上のすべてのコントロールを行います今、私のラップトップは死んだ)。


は手動でPaintイベントを介して、または制御とオーバーライドのOnPaint *()から派生させてコントロールのレンダリングを処理することができます。

プログレスバーがかなりシンプルなので、独自のロールバックを使用することもできます。

+0

Hm。残念なことに、このフォームはVisualStudio AddInによってホストされているので、Lunaビジュアルスタイルをすべて無効にすることはできません。 –

+0

これは確かに物事を変えます;) – bsneeze

+0

もっと簡単な解決策があると思っていましたが、これは実際にはバグと考えられるAPIの変更であるようです。しかし、ありがとう。 –

関連する問題