ControlStyles 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指定控制項的樣式和行為。
此列舉支援其成員值的位元組合。
public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles =
Public Enum ControlStyles
- 繼承
- 屬性
欄位
AllPaintingInWmPaint | 8192 | 如果為 |
ApplyThemingImplicitly | 524288 | |
CacheText | 16384 | 如果為 |
ContainerControl | 1 | 如果為 |
DoubleBuffer | 65536 | 如果為 |
EnableNotifyMessage | 32768 | 如果為 |
FixedHeight | 64 | 如果為 |
FixedWidth | 32 | 如果為 |
Opaque | 4 | 如果為 |
OptimizedDoubleBuffer | 131072 | 如果為 |
ResizeRedraw | 16 | 如果為 |
Selectable | 512 | 如果為 |
StandardClick | 256 | 如果為 |
StandardDoubleClick | 4096 | 如果為 |
SupportsTransparentBackColor | 2048 | 如果為 |
UserMouse | 1024 | 如果為 |
UserPaint | 2 | 如果為 |
UseTextForAccessibility | 262144 | 指定控制項的 |
範例
下列範例示範 搭配 StyleChanged 事件的 用法 ControlStyles 。
private:
// Set the 'FixedHeight' and 'FixedWidth' styles to false.
void MyForm_Load( Object^ /*sender*/, EventArgs^ /*e*/ )
{
this->SetStyle( ControlStyles::FixedHeight, false );
this->SetStyle( ControlStyles::FixedWidth, false );
}
void RegisterEventHandler()
{
this->StyleChanged += gcnew EventHandler( this, &MyForm::MyForm_StyleChanged );
}
// Handle the 'StyleChanged' event for the 'Form'.
void MyForm_StyleChanged( Object^ /*sender*/, EventArgs^ /*e*/ )
{
MessageBox::Show( "The style releated to the 'Form' has been changed" );
}
// Set the 'FixedHeight' and 'FixedWidth' styles to false.
private void MyForm_Load(object sender, EventArgs e)
{
this.SetStyle(ControlStyles.FixedHeight, false);
this.SetStyle(ControlStyles.FixedWidth, false);
}
private void RegisterEventHandler()
{
this.StyleChanged += new EventHandler(MyForm_StyleChanged);
}
// Handle the 'StyleChanged' event for the 'Form'.
private void MyForm_StyleChanged(object sender, EventArgs e)
{
MessageBox.Show("The style releated to the 'Form' has been changed");
}
' Set the 'FixedHeight' and 'FixedWidth' styles to false.
Private Sub MyForm_Load(sender As Object, e As EventArgs)
Me.SetStyle(ControlStyles.FixedHeight, False)
Me.SetStyle(ControlStyles.FixedWidth, False)
End Sub
Private Sub RegisterEventHandler()
AddHandler Me.StyleChanged, AddressOf MyForm_StyleChanged
End Sub
' Handle the 'StyleChanged' event for the 'Form'.
Private Sub MyForm_StyleChanged(sender As Object, e As EventArgs)
MessageBox.Show("The style releated to the 'Form' has been changed")
End Sub
備註
控制項會在各種屬性和方法中使用這個列舉來指定功能。 控制項可以呼叫 方法來啟用樣式, SetStyle 並傳入適當的 ControlStyles 位 (或位) 和布林值,以將位 () 設定為 。 例如,下列一行 Visual Basic 程式碼會啟用雙緩衝處理。
myControl.SetStyle(UserPaint Or AllPaintingInWmPaint Or DoubleBuffer, True)
如果 AllPaintingInWmPaint 位設定為 true
,則會忽略視窗訊息WM_ERASEBKGND,而且 和 OnPaintBackgroundOnPaint 方法都會直接從視窗訊息WM_PAINT呼叫。 除非其他控制項WM_ERASEBKGND傳送視窗訊息給控制項,否則這通常會減少閃爍。 您可以將視窗訊息傳送WM_ERASEBKGRND,以達到類似 SupportsTransparentBackColor 的虛擬透明效果;例如, ToolBar 具有一般外觀的 會執行此動作。
若要完全啟用雙緩衝處理,您可以將 OptimizedDoubleBuffer 和 AllPaintingInWmPaint 位設定為 true
。 不過,啟用雙精度緩衝的慣用方法會產生相同的結果,就是將 控制項的 屬性設定 DoubleBuffered 為 true
。
如果 SupportsTransparentBackColor 位設定為 true
,且 BackColor 設定為 Alpha 元件小於 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 事件。 不過,控制項可以呼叫或 OnDoubleClick 直接呼叫 OnClick ,而不論 StandardClick 和 StandardDoubleClick 位值為何。 如需有關控制項按一下和按兩下行為的詳細資訊,請參閱 Control.Click 和 Control.DoubleClick 主題。
當設定 UseTextForAccessibility 位且控制項 Text
的 屬性中有值時,該控制項的 屬性值會決定控制項 Text
的預設 Active Accessibility 名稱和快速鍵。 否則,將會改用上述 Label 控制項的文字。 預設會設定此樣式。 某些內建控制項類型,例如 TextBox 和 ComboBox ,請重設此樣式, Text
讓 Active Accessibility 不會使用這些控制項的 屬性。