[Flags] [Serializable] public enum ControlStylesこの列挙型は、次のような意味を持つメンバを持っています
| メンバ | 解説 |
|---|---|
| AllPaintingInWmPaint | コントロールはウィンドウ メッセージ WM_ERASEBKGND を無視することによって、ちらつきを抑えます このスタイルは、 UserPaint が true に設定されている場合だけ適用されます |
| CacheText | コントロールは、必要に応じて毎回 Handle から テキストのコピーを取得するのではなく、テキストのコピーを保持しています このスタイルは、既定では false に設定されます この動作によってパフォーマンスは向上しますが テキストを同期させておくことが難しくなります |
| ContainerControl | コントロールは、コンテナのような機能を果たします |
| DoubleBuffer | 描画はバッファで実行され、完了後に、結果が画面に出力されます ダブル バッファリングは、コントロールの描画によるちらつきを防ぎます ダブル バッファリングを完全に有効にするには UserPaint ビットと AllPaintingInWmPaint ビットを true に設定する必要もあります |
| EnableNotifyMessage | true の場合、コントロールの WndProc に送信されたすべてのメッセージに対して OnNotifyMessage メソッドが呼び出されます このスタイルは、既定では false に設定されます |
| FixedHeight | コントロールの高さは固定されています |
| FixedWidth | コントロールの幅は固定されています |
| Opaque | コントロールが不透明に描画され、背景は描画されません |
| ResizeRedraw | コントロールのサイズが変更されると、そのコントロールが再描画されます |
| Selectable | コントロールはフォーカスを取得できます |
| StandardClick | コントロールは、標準の Click 動作を実装します |
| StandardDoubleClick | コントロールは、標準の DoubleClick 動作を実装します このスタイルは、 StandardClick が設定されていない場合は無視されます |
| SupportsTransparentBackColor | コントロールはアルファ値が 255 未満の BackColor を受け入れ 透明度をシミュレートします この透明度は、 UserPaint ビットが true に設定され 親コントロールが Control から派生している場合だけシミュレートされます |
| UserMouse | コントロールがマウスの操作を独自に処理し OSではマウス イベントが処理されません |
| UserPaint | コントロールは、OSによってではなく、独自に描画されます このスタイルは、 Control から派生したクラスだけに適用されます |
using System.Windows.Forms;
using System.Drawing;
class WinMain : Form {
public static void Main(string[] args) {
Application.Run(new WinMain());
}
public WinMain() {
SetStyle(ControlStyles.ResizeRedraw , true);
}
override protected void OnPaint(PaintEventArgs e) {
Graphics g = e.Graphics;
g.DrawString(Size.ToString() , Font , Brushes.Black , 0 , 0);
}
}
