2

TabControlを作成しましたが、いくつかのコントロール(ラベル、テキストボックス、ボタン、およびコンボボックスのドロップダウン)を使用したいと思います。問題は、タブを選択したときに、デフォルトの背景色が、コントロールがオンになっていたフォームのデフォルトの背景色と同じではないことです。タブとコントロールの色が似すぎて見栄えがよくありません。

見てみましたが、タブに色を付けるのは無理だと言われているようです。これに対する良い解決策は何ですか?背景を暗くするために、タブの中に何らかのフレームやラベルなどを配置する必要がありますか?

4

1 に答える 1

1

タブページでフォームと同じ背景色を使用するのは簡単です。

  1. TabPage変更したいものがデザイナに表示されていることを確認してください。それをクリックして選択します。

  2. [プロパティ]ウィンドウで、プロパティを見つけてUseVisualStyleBackColor、に設定しFalseます。

また、ボーナスとして、このプロパティをに設定すると、そのプロパティFalseを使用するために必要な背景色を指定できます。TabPageBackColor

これが機能する理由は、タブページを視覚的なスタイル(つまり、Windowsで定義されているテーマ)でレンダリングしないように強制しているためです。デフォルトのテーマは、実際には、他の3D要素(フォームやボタンなど)のペイントに使用される色のわずかに明るい色合いのタブページをペイントします。問題(特にAeroテーマの場合)は、標準の3D要素の色がすでに非常に薄いため、タブページがほとんど白く見えることです。

フォームの標準の背景色に対するコントロールのコントラストに満足している場合は、カスタムの背景色を指定せずに、UseVisualStyleBackColorプロパティをに設定Falseしてそのままにしておくことをお勧めします。ユーザーのデフォルトのテーマを尊重することは、アプリケーションを自分でスキンしようとするのではなく、一般的にベストプラクティスです。

編集:これは、の上部にあるタブ自体の色を変更しないことに注意してくださいTabControl。そのためには、所有者が描いたものとして指定し、そのDrawItemイベントを処理する必要があります。これにより、すべてのペイントを自分で行う必要があります。ただし、ほとんどの場合、これは必要ありません。

于 2010-11-24T09:08:50.160 に答える