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

Определение

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

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

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

Поля

AllPaintingInWmPaint 8192

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

CacheText 16384

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

ContainerControl 1

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

DoubleBuffer 65536

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

EnableNotifyMessage 32768

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

FixedHeight 64

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

FixedWidth 32

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

Opaque 4

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

OptimizedDoubleBuffer 131072

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

ResizeRedraw 16

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

Selectable 512

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

StandardClick 256

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

StandardDoubleClick 4096

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

SupportsTransparentBackColor 2048

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

UserMouse 1024

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

UserPaint 2

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

UseTextForAccessibility 262144

Указывает, что значение свойства Text (если оно задано для этого элемента управления) определяет стандартное имя и сочетание клавиш для этого элемента управления в Active Accessibility.

Примеры

В следующем примере показано использование 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; Например, это делает объект ToolBar с плоским внешним видом.

Чтобы полностью включить двойную буферизацию, можно задать для битОв OptimizedDoubleBuffer и AllPaintingInWmPaint значение true. Однако предпочтительный метод включения двойной буферизации, который дает тот же результат, заключается в том, чтобы задать свойству DoubleBuffered элемента управления значение true.

Если бит SupportsTransparentBackColor имеет значение true, а BackColor для — цвет, альфа-компонент которого меньше 255, будет имитировать прозрачность, OnPaintBackground запрашивая у родительского элемента управления закрашивание фона. Это не является истинной прозрачностью.

Примечание

Если между элементом управления и его родительским элементом имеется другой элемент управления, текущий элемент управления не будет отображать элемент управления в середине.

Если для бита UserMouse задано значение , по-прежнему trueвызываются следующие методы: Control.OnMouseDown, Control.OnMouseUp, , Control.OnMouseEnter, Control.OnMouseLeaveControl.OnMouseMoveControl.OnMouseHover, и .Control.OnMouseWheel

Если для бита StandardClick задано значение trueControl.OnClick , вызывается метод и вызывается Control.Click событие . Если дважды щелкнуть элемент управления и для битов StandardClick и StandardDoubleClick задано значение true, щелчок передается в DoubleClick событие . Control.OnDoubleClick Затем вызывается метод , который вызывает Control.DoubleClick событие . Однако элемент управления может вызывать OnClick или OnDoubleClick напрямую независимо от битовых значений StandardClick и StandardDoubleClick. Дополнительные сведения о поведении элемента управления щелчком и двойным щелчком см. в разделах Control.Click и Control.DoubleClick .

Если задан бит UseTextForAccessibility и в свойстве элемента управления Text есть значение, значение свойства этого элемента управления Text определяет имя элемента управления Active Accessibility по умолчанию и сочетание клавиш. В противном случае вместо него будет использоваться текст предыдущего Label элемента управления. Этот стиль задан по умолчанию. Некоторые встроенные типы элементов управления, такие как TextBox и ComboBox, сбрасывают этот стиль, Text чтобы свойство этих элементов управления не использовалось активными специальными возможностями.

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

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