ControlStyles Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает стиль и поведение элемента управления.
Это перечисление поддерживает побитовую комбинацию значений его членов.
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 | Для определенных режимов цвета, связанных с пользовательским интерфейсом (темный режим или режим света), элементы управления могут автоматически применять соответствующие темы. Особенно элементы управления, использующие системные полосы прокрутки, могут воспользоваться этим параметром. Обратите внимание, что использование этих параметров приведет к тому, что некоторые средства управления темами 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 бит (или бит) и логическое значение для задания битов. Например, следующая строка кода Visual Basic включает двойное буферизация.
myControl.SetStyle(UserPaint Or AllPaintingInWmPaint Or DoubleBuffer, True)
Если для бита AllPaintingInWmPaint задано trueзначение , сообщение окна WM_ERASEBKGND игнорируется, и оба OnPaintBackgroundOnPaint метода вызываются непосредственно из сообщения окна WM_PAINT. Это обычно уменьшает мерцание, если другие элементы управления не отправляют сообщение окна WM_ERASEBKGND элементу управления. Вы можете отправить сообщение окна WM_ERASEBKGRND для достижения псевдопрозрачного эффекта, аналогичного ПоддержкеTransparentBackColor; Например, это делает неструктурированный внешний ToolBar вид.
Чтобы полностью включить двойной буферизацию, можно задать для битов trueOptimizedDoubleBuffer и AllPaintingInWmPaint. Однако предпочтительный метод включения двойного буферизации, который дает один и тот же результат, заключается в том, чтобы задать DoubleBuffered для элемента управления trueсвойство.
Если для бита SupportsTransparentBackColor задан trueцвет, BackColor альфа-компонент которого меньше 255, будет имитировать прозрачность, OnPaintBackground запрашивая родительский элемент управления для рисования фона. Это не правда прозрачность.
Замечание
Если между элементом управления и его родительским элементом есть другой элемент управления, текущий элемент управления не будет отображаться в середине.
Если для бита UserMouse задано значениеtrue, то следующие методы по-прежнему вызываются: Control.OnMouseDown, Control.OnMouseUp, Control.OnMouseEnter, Control.OnMouseMove, Control.OnMouseHoverControl.OnMouseLeaveи Control.OnMouseWheel.
Когда элемент управления щелкается, если бит StandardClick задан trueControl.OnClick для метода, вызывается и вызывает Control.Click событие. Если элемент управления дважды щелкается, а биты StandardClick и StandardDoubleClick заданы true, щелчок передается DoubleClick в событие.
Control.OnDoubleClick Затем вызывается метод и вызывается Control.DoubleClick событие. Однако элемент управления может вызывать OnClick или OnDoubleClick напрямую независимо от значений bit StandardClick и StandardDoubleClick. Дополнительные сведения о поведении щелчка и двойного щелчка см Control.Click . в разделах и Control.DoubleClick разделах.
Если бит UseTextForAccessibility задан и имеет значение в свойстве элемента управления Text , значение свойства этого элемента управления определяет имя активной специальных возможностей и сочетания клавиш элемента управления Text по умолчанию. В противном случае вместо этого будет использоваться текст предыдущего Label элемента управления. Этот стиль устанавливается по умолчанию. Некоторые встроенные типы элементов управления, такие как TextBox и ComboBox, сбросьте этот стиль, чтобы Text свойство этих элементов управления не использовалось активными специальными возможностями.