ControlStyles 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指定控件的樣式和行為。
此列舉支援其成員值的位元組合。
public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles =
Public Enum ControlStyles
- 繼承
- 屬性
欄位
| 名稱 | 值 | Description |
|---|---|---|
| ContainerControl | 1 | 若 |
| UserPaint | 2 | 若 |
| Opaque | 4 | 若 |
| ResizeRedraw | 16 | 若 |
| FixedWidth | 32 | 若 |
| FixedHeight | 64 | 若 |
| StandardClick | 256 | 若 |
| Selectable | 512 | 若 |
| UserMouse | 1024 | 若 |
| SupportsTransparentBackColor | 2048 | 若 |
| StandardDoubleClick | 4096 | 若 |
| AllPaintingInWmPaint | 8192 | 若 |
| CacheText | 16384 | 若 |
| EnableNotifyMessage | 32768 | 若 |
| DoubleBuffer | 65536 | 如果 |
| OptimizedDoubleBuffer | 131072 | 若 |
| UseTextForAccessibility | 262144 | 規定若設定 |
| ApplyThemingImplicitly | 524288 | 對於某些與 UI 相關的色彩模式(暗黑模式/淺色模式),控制鍵可選擇自動套用相應主題。 尤其是使用系統管理滾動條的控制,能從此設定中受益。 請注意,使用此設定會導致某些 Win32 控制主題渲染器在特定主題下失效。 |
範例
以下範例展示了與 ControlStyles 事件的 StyleChanged 應用。
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 會被忽略,且 OnPaintBackground 和 OnPaint 方法皆直接從視窗訊息 WM_PAINT 呼叫。 這通常能減少閃爍,除非其他控制項將視窗訊息WM_ERASEBKGND傳送給控制裝置。 你可以發送視窗訊息WM_ERASEBKGRND,以達成類似 SupportsTransparentBackColor 的偽透明效果;例如,平面外觀的 A ToolBar 就是這樣。
要完全啟用雙重緩衝,你可以將 OptimizedDoubleBuffer 和 AllPaintingInWmPaint 位元設為 true。 然而,啟用雙重緩衝的首選方法是將控制項的性質設 DoubleBuffered 為 true。
如果 SupportsTransparentBackColor 位元設為 true,且 的 BackColor 顏色 alpha 分量小於 255, OnPaintBackground 則會透過請求父控制項繪製背景來模擬透明度。 這不是真正的透明度。
備註
如果控制項與父控制點之間有其他控制點,目前的控制點將不會顯示中間的控制點。
當 UserMouse 位元設為 true時,以下方法仍會被呼叫:Control.OnMouseDown、 Control.OnMouseHoverControl.OnMouseUpControl.OnMouseWheelControl.OnMouseEnterControl.OnMouseMoveControl.OnMouseLeave。
當控制項被點擊時,如果 StandardClick 位元設為 ,true則會呼叫該Control.OnClick方法並引發事件。Control.Click 當控制項被雙擊,且 StandardClick 和 StandardDoubleClick 位元都設為 true時,點擊會傳遞給事件 DoubleClick 。 接著呼叫該 Control.OnDoubleClick 方法,事件就會 Control.DoubleClick 被觸發。 然而,控制項可以直接呼叫 OnClick 或 OnDoubleClick ,無論 StandardClick 和 StandardDoubleClick 的位元值如何。 欲了解更多關於控制點擊與雙擊行為的資訊,請參閱與Control.DoubleClick主題。Control.Click
當 UseTextForAccessibility 位元被設定且控制項 Text 屬性中有值時,該控制項屬性的值決定 Text 了控制項預設的主動無障礙名稱與快捷鍵。 否則,將改用前一個 Label 控制項的文本。 此樣式預設為設定。 某些內建控制類型,如 TextBox 和 ComboBox,會重置此樣式,使 Text 得這些控制項的特性不會被主動無障礙使用。