ControlStyles 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定控件的样式和行为。
此枚举支持其成员值的按位组合。
public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles =
Public Enum ControlStyles
- 继承
- 属性
字段
| 名称 | 值 | 说明 |
|---|---|---|
| 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 控制主题呈现器在特定主题中变为非活动状态。 |
示例
以下示例演示了ControlStylesStyleChanged对事件的用法。
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 位(或位)和布尔值来设置位(s)来启用样式。 例如,以下 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。 但是,启用生成相同结果的双缓冲的首选方法是将控件的属性设置为 DoubleBufferedtrue。
如果 SupportsTransparentBackColor 位设置为 true,并且 BackColor 设置为 alpha 分量小于 255 的颜色, OnPaintBackground 则通过请求其父控件绘制背景来模拟透明度。 这不是真正的透明度。
注释
如果控件与其父控件之间存在另一个控件,则当前控件不会在中间显示该控件。
将 UserMouse 位设置为true时,仍调用以下方法:Control.OnMouseDown、、Control.OnMouseEnterControl.OnMouseUp、Control.OnMouseMove、Control.OnMouseHover、和Control.OnMouseLeaveControl.OnMouseWheel。
单击控件时,如果将 StandardClick 位设置为trueControl.OnClick该方法,则会引发Control.Click该事件。 双击控件时,StandardClick 和 StandardDoubleClick 位都设置为 true,单击将传递给 DoubleClick 事件。
Control.OnDoubleClick然后调用该方法并引发Control.DoubleClick事件。 但是,无论 StandardClick 和 StandardDoubleClick 位值如何,控件都可以调用或OnDoubleClick直接调用OnClick。 有关控件单击和双击行为的详细信息,请参阅 Control.Click 和 Control.DoubleClick 主题。
当设置 UseTextForAccessibility 位并且控件 Text 的属性中有一个值时,该控件 Text 的属性的值将确定控件的默认 Active Accessibility 名称和快捷键。 否则,将改用上述 Label 控件的文本。 默认设置此样式。 某些内置控件类型(如 TextBox 和 ComboBox)重置此样式, Text 以便活动辅助功能不会使用这些控件的属性。