次の方法で共有


ControlStyles 列挙体

コントロールのスタイルと動作を指定します。

この列挙体には、メンバ値をビットごとに演算するための FlagsAttribute 属性が含まれています。

<Flags>
<Serializable>
Public Enum ControlStyles
[C#]
[Flags]
[Serializable]
public enum ControlStyles
[C++]
[Flags]
[Serializable]
__value public enum ControlStyles
[JScript]
public
   Flags
 Serializable
enum ControlStyles

解説

コントロールは、さまざまなプロパティやメソッドでこの列挙体を使用して、機能を指定します。コントロールは SetStyle メソッドを呼び出して、適切な ControlStyles ビットと、ビットを設定する Boolean 値を渡すことによって、スタイルを有効にすることができます。たとえば、Visual Basic の次のコード行はダブル バッファリングを有効にします。

myControl.SetStyle(UserPaint Or AllPaintingInWmPaint Or DoubleBuffer, True)
   

AllPaintingInWmPaint ビットが true に設定されている場合、ウィンドウ メッセージ WM_ERASEBKGND は無視され、 OnPaintBackground メソッドと OnPaint メソッドの両方が、ウィンドウ メッセージ WM_PAINT から直接呼び出されます。通常はこの動作によって、ほかのコントロールがウィンドウ メッセージ WM_ERASEBKGND をコントロールに送信しない限り、ちらつきを抑えることができます。ウィンドウ メッセージ WM_ERASEBKGRND を送信すると、 SupportsTransparentBackColor を使用した場合と同じような透明効果をシミュレートできます。たとえば、フラットな外観を設定した ToolBar に、この効果を適用できます。

ダブル バッファリングを完全に有効にするには、 UserPaintAllPaintingInWmPaintDoubleBuffer の各ビットを true に設定する必要があります。

SupportsTransparentBackColor ビットが true に設定され、 BackColor にアルファ値が 255 未満の色が設定されている場合、 OnPaintBackground は、親コントロールに背景を描画させることによって透明効果をシミュレートします。これによって実現される透明度は、実際の透明ではありません。

メモ   コントロールと親コントロールの間に別のコントロールがある場合、現在のコントロールには、間にあるコントロールが表示されません。

UserMouse ビットが true に設定されている場合は、 Control.OnMouseDown メソッド、 Control.OnMouseUp メソッド、 Control.OnMouseEnter メソッド、 Control.OnMouseMove メソッド、 Control.OnMouseHover メソッド、 Control.OnMouseLeave メソッド、および Control.OnMouseWheel メソッドが引き続き呼び出されます。

StandardClick ビットが true に設定されている場合は、コントロールがクリックされると、 Control.OnClick メソッドが呼び出され、 Control.Click イベントを発生させます。 StandardClick ビットと StandardDoubleClick ビットの両方が true に設定されている場合は、コントロールがダブルクリックされると、そのクリックは DoubleClick イベントに渡されます。次に Control.OnDoubleClick メソッドが呼び出され、 Control.DoubleClick イベントを発生させます。ただし、 StandardClick ビットおよび StandardDoubleClick ビットの値に関係なく、そのコントロールは OnClick または OnDoubleClick を直接呼び出すことができます。クリック動作およびダブルクリック動作の詳細については、 Control.Click および Control.DoubleClick のトピックを参照してください。

継承時の注意: 標準の Windows フォーム コントロールから継承し、 StandardClick ビット値または StandardDoubleClick ビット値を true に変更すると、コントロールが Click イベントまたは DoubleClick イベントをサポートしていない場合は、予測できない動作が行われたり、何の効果も得られなかったりします。

メンバ

メンバ名 説明
AllPaintingInWmPaint true の場合、コントロールはウィンドウ メッセージ WM_ERASEBKGND を無視することによって、ちらつきを抑えます。このスタイルは、 UserPaint ビットが true に設定されている場合だけ適用されます。 8192
CacheText true の場合、コントロールは、必要に応じて毎回 Handle からテキストのコピーを取得するのではなく、テキストのコピーを保持します。このスタイルは、既定では false に設定されます。この動作によってパフォーマンスは向上しますが、テキストを同期させておくことが難しくなります。 16384
ContainerControl true の場合、コントロールは、コンテナのような機能を果たします。 1
DoubleBuffer true の場合、描画はバッファで実行され、完了後に、結果が画面に出力されます。ダブル バッファリングは、コントロールの描画によるちらつきを防ぎます。ダブル バッファリングを完全に有効にするには、 UserPaint スタイル ビットと AllPaintingInWmPaint スタイル ビットを true に設定する必要もあります。 65536
EnableNotifyMessage true の場合、コントロールの WndProc に送信されたすべてのメッセージに対して OnNotifyMessage メソッドが呼び出されます。このスタイルは、既定では false に設定されます。 32768
FixedHeight true の場合、自動スケールされるとき、コントロールの幅が固定されます。たとえば、新しい Font を挿入できるようにレイアウト操作でコントロールを再スケールしようとしても、コントロールの Width は変更されません。 64
FixedWidth true の場合は、自動スケールされるとき、コントロールの高さが固定されます。たとえば、新しい Font を挿入できるようにレイアウト操作でコントロールを再スケールしようとしても、コントロールの Height は変更されません。 32
Opaque true の場合は、コントロールが不透明に描画され、背景は描画されません。 4
ResizeRedraw true の場合は、コントロールのサイズが変更されると、そのコントロールが再描画されます。 16
Selectable true の場合、コントロールはフォーカスを受け取ることができます。 512
StandardClick true の場合、コントロールは、標準の Click 動作を実装します。 256
StandardDoubleClick true の場合、コントロールは、標準の DoubleClick 動作を実装します。 StandardClick ビットが true に設定されている場合、このスタイルは無視されます。 4096
SupportsTransparentBackColor true の場合、コントロールは、アルファ値が 255 未満の BackColor を受け入れ、透明度をシミュレートします。この透明度は、 UserPaint ビットが true に設定され、親コントロールが Control から派生している場合だけシミュレートされます。 2048
UserMouse true の場合は、コントロールがマウスの操作を独自に処理し、オペレーティング システムではマウス イベントが処理されません。 1024
UserPaint true の場合は、コントロールは、オペレーティング システムによってではなく、独自に描画されます。このスタイルは、 Control から派生したクラスだけに適用されます。 2

使用例

Form でダブル バファリングを有効にし、スタイルを更新して変更内容を反映する例を次に示します。

必要条件

名前空間: System.Windows.Forms

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Windows.Forms (System.Windows.Forms.dll 内)

参照

System.Windows.Forms 名前空間 | Control.SetStyle | Control.GetStyle