Поделиться через


ControlStyles Перечисление

Определение

Задает стиль и поведение элемента управления.

Это перечисление поддерживает побитовую комбинацию значений его членов.

public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles = 
Public Enum ControlStyles
Наследование
ControlStyles
Атрибуты

Поля

Имя Значение Описание
ContainerControl 1

Если trueэлемент управления является элементом управления, похожим на контейнер.

UserPaint 2

Если trueэлемент управления закрашивает себя, а не операционную систему. Paint Если falseсобытие не вызывается. Этот стиль применяется только к классам, производным от Control.

Opaque 4

Если trueэлемент управления рисуется непрозрачным, а фон не окрашен.

ResizeRedraw 16

Если trueэлемент управления перезаписается при изменении размера.

FixedWidth 32

Если trueэлемент управления имеет фиксированную ширину при автоматическом масштабировании. Например, если операция макета пытается изменить масштаб элемента управления для размещения нового Fontэлемента управления, элемент управления Width остается неизменным.

FixedHeight 64

Если trueэлемент управления имеет фиксированную высоту при автоматическом масштабировании. Например, если операция макета пытается изменить масштаб элемента управления для размещения нового Fontэлемента управления, элемент управления Height остается неизменным.

StandardClick 256

Если trueэлемент управления реализует стандартное Click поведение.

Selectable 512

Если trueэлемент управления может получить фокус.

UserMouse 1024

Если trueэлемент управления выполняет собственную обработку мыши, а события мыши не обрабатываются операционной системой.

SupportsTransparentBackColor 2048

Если trueэлемент управления принимает BackColor альфа-компонент менее 255 для имитации прозрачности. Прозрачность будет имитирована только в том случае, если UserPaint для бита задано true значение, и родительский элемент управления является производным от Control.

StandardDoubleClick 4096

Если trueэлемент управления реализует стандартное DoubleClick поведение. Этот стиль игнорируется, если StandardClick бит не задан true.

AllPaintingInWmPaint 8192

Если trueэлемент управления игнорирует сообщение окна WM_ERASEBKGND для уменьшения мерцания. Этот стиль должен применяться только в том случае, если UserPaint для бита задано значение true.

CacheText 16384

Если trueэлемент управления сохраняет копию текста, а не получает его при Handle каждом необходимости. Этот стиль по умолчанию используется false. Такое поведение повышает производительность, но затрудняет синхронизацию текста.

EnableNotifyMessage 32768

Если trueметод вызывается для каждого сообщения, OnNotifyMessage(Message) отправленного элементу управления WndProc(Message). Этот стиль по умолчанию используется false. EnableNotifyMessage не работает в частичном доверии.

DoubleBuffer 65536

Если trueрисунок выполняется в буфере и после завершения, результат выводится на экран. Двойное буферизация предотвращает мерцание, вызванное перерисовками элемента управления. Если задано значение DoubleBuffertrue, необходимо также задать и AllPaintingInWmPaint задать UserPaint значение true.

OptimizedDoubleBuffer 131072

Если trueэлемент управления сначала рисуется в буфер, а не непосредственно на экран, что может уменьшить мерцание. Если для этого свойства trueзадано AllPaintingInWmPaint значение, необходимо также задать значение true.

UseTextForAccessibility 262144

Указывает, что значение свойства элемента управления Text , если задано, определяет имя активного специальных возможностей элемента управления по умолчанию и сочетания клавиш.

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 свойство этих элементов управления не использовалось активными специальными возможностями.

Применяется к

См. также раздел