ControlStyles Wyliczenie

Definicja

Określa styl i zachowanie kontrolki.Specifies the style and behavior of a control.

To wyliczenie ma atrybut FlagsAttribute zezwalający na bitową kombinację jego wartości składowych.

public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles = 
Public Enum ControlStyles
Dziedziczenie
ControlStyles
Atrybuty

Pola

AllPaintingInWmPaint 8192

Jeśli true formant zignoruje komunikat okna WM_ERASEBKGND, aby zmniejszyć migotanie.If true, the control ignores the window message WM_ERASEBKGND to reduce flicker. Ten styl powinien być stosowany tylko wtedy, gdy UserPaint bit jest ustawiony na true .This style should only be applied if the UserPaint bit is set to true.

CacheText 16384

Jeśli true kontrolka zachowuje kopię tekstu, zamiast pobierać ją z każdej chwili, gdy Handle jest to konieczne.If true, the control keeps a copy of the text rather than getting it from the Handle each time it is needed. Ten styl ma wartość domyślną false .This style defaults to false. To zachowanie poprawia wydajność, ale utrudnia synchronizowanie tekstu.This behavior improves performance, but makes it difficult to keep the text synchronized.

ContainerControl 1

Jeśli true , formant jest kontrolką podobną do kontenera.If true, the control is a container-like control.

DoubleBuffer 65536

Jeśli true rysunek jest wykonywany w buforze i po jego zakończeniu, wynik jest wyprowadzany na ekranie.If true, drawing is performed in a buffer, and after it completes, the result is output to the screen. Buforowanie podwójne uniemożliwia migotanie spowodowane przerysowaniem formantu.Double-buffering prevents flicker caused by the redrawing of the control. Jeśli ustawisz DoubleBuffer wartość true , należy również ustawić UserPaint i AllPaintingInWmPaint na true .If you set DoubleBuffer to true, you should also set UserPaint and AllPaintingInWmPaint to true.

EnableNotifyMessage 32768

Jeśli true OnNotifyMessage(Message) Metoda jest wywoływana dla każdej wiadomości wysyłanej do kontrolki WndProc(Message) .If true, the OnNotifyMessage(Message) method is called for every message sent to the control's WndProc(Message). Ten styl ma wartość domyślną false .This style defaults to false. EnableNotifyMessage nie działa w częściowej relacji zaufania.EnableNotifyMessage does not work in partial trust.

FixedHeight 64

Jeśli true formant ma stałą wysokość podczas skalowania automatycznego.If true, the control has a fixed height when auto-scaled. Na przykład, jeśli operacja układu próbuje zmienić skalowanie kontrolki w celu uwzględnienia nowej Font , Height pozostaje niezmieniona.For example, if a layout operation attempts to rescale the control to accommodate a new Font, the control's Height remains unchanged.

FixedWidth 32

Jeśli true , formant ma stałą szerokość podczas skalowania automatycznego.If true, the control has a fixed width when auto-scaled. Na przykład, jeśli operacja układu próbuje zmienić skalowanie kontrolki w celu uwzględnienia nowej Font , Width pozostaje niezmieniona.For example, if a layout operation attempts to rescale the control to accommodate a new Font, the control's Width remains unchanged.

Opaque 4

Jeśli true formant jest rysowany jako nieprzezroczysty, a tło nie jest rysowane.If true, the control is drawn opaque and the background is not painted.

OptimizedDoubleBuffer 131072

Jeśli true , formant jest najpierw rysowany do bufora, a nie bezpośrednio do ekranu, co może zmniejszyć migotanie.If true, the control is first drawn to a buffer rather than directly to the screen, which can reduce flicker. Jeśli ustawisz tę właściwość na true , należy również ustawić AllPaintingInWmPaint na true .If you set this property to true, you should also set the AllPaintingInWmPaint to true.

ResizeRedraw 16

Jeśli po true zmianie rozmiaru kontrolka zostanie narysowana ponownie.If true, the control is redrawn when it is resized.

Selectable 512

Jeśli true formant może odbierać fokus.If true, the control can receive focus.

StandardClick 256

Jeśli true , formant implementuje Click zachowanie standardowe.If true, the control implements the standard Click behavior.

StandardDoubleClick 4096

Jeśli true , formant implementuje DoubleClick zachowanie standardowe.If true, the control implements the standard DoubleClick behavior. Ten styl jest ignorowany, jeśli StandardClick bit nie jest ustawiony na true .This style is ignored if the StandardClick bit is not set to true.

SupportsTransparentBackColor 2048

Jeśli true , formant akceptuje BackColor składnik alfa o wartości mniejszej niż 255, aby symulować przezroczystość.If true, the control accepts a BackColor with an alpha component of less than 255 to simulate transparency. Przezroczystość będzie symulowana tylko wtedy, gdy UserPaint bit jest ustawiony na true , a formant nadrzędny pochodzi od Control .Transparency will be simulated only if the UserPaint bit is set to true and the parent control is derived from Control.

UserMouse 1024

Jeśli true kontrolka wykonuje własne przetwarzanie myszy, a zdarzenia myszy nie są obsługiwane przez system operacyjny.If true, the control does its own mouse processing, and mouse events are not handled by the operating system.

UserPaint 2

trueW przypadku, gdy formant maluje się, a nie w systemie operacyjnym.If true, the control paints itself rather than the operating system doing so. Jeśli false Paint zdarzenie nie zostanie zgłoszone.If false, the Paint event is not raised. Ten styl dotyczy tylko klas pochodnych z Control .This style only applies to classes derived from Control.

UseTextForAccessibility 262144

Określa, że wartość właściwości Text kontrolki, jeśli ustawiona, określa domyślną nazwę i klawisz skrótu kontrolki.Specifies that the value of the control's Text property, if set, determines the control's default Active Accessibility name and shortcut key.

Przykłady

Poniższy przykład ilustruje użycie ControlStyles ze StyleChanged zdarzeniem.The following example demonstrates a use of ControlStyles with the StyleChanged event.

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

Uwagi

Kontrolki używają tego wyliczenia w różnych właściwościach i metodach do określania funkcjonalności.Controls use this enumeration in various properties and methods to specify functionality. Kontrolka może włączyć styl przez wywołanie SetStyle metody i przekazanie odpowiednich ControlStyles bitów (lub bitów) i wartości logicznej w celu ustawienia bitów na.A control can enable a style by calling the SetStyle method and passing in the appropriate ControlStyles bit (or bits) and the Boolean value to set the bit(s) to. Na przykład poniższy wiersz kodu Visual Basic spowoduje włączenie podwójnego buforowania.For example, the following line of Visual Basic code would enable double-buffering.

myControl.SetStyle(UserPaint Or AllPaintingInWmPaint Or DoubleBuffer, True)  

Jeśli AllPaintingInWmPaint bit jest ustawiony na true , komunikat okna WM_ERASEBKGND jest ignorowany, a obie OnPaintBackground OnPaint metody są wywoływane bezpośrednio z okna komunikatu WM_PAINT.If the AllPaintingInWmPaint bit is set to true, the window message WM_ERASEBKGND is ignored, and both OnPaintBackground and OnPaint methods are called directly from the window message WM_PAINT. Zwykle zmniejsza to migotanie, chyba że inne kontrolki wysyłają komunikat okna WM_ERASEBKGND do kontrolki.This generally reduces flicker unless other controls send the window message WM_ERASEBKGND to the control. Można wysłać komunikat okna WM_ERASEBKGRND w celu osiągnięcia nieprzezroczystego efektu podobnego do SupportsTransparentBackColor; na przykład jest ToolBar to prosty wygląd.You might send the window message WM_ERASEBKGRND to achieve a pseudo-transparent effect similar to SupportsTransparentBackColor; for example, a ToolBar with flat appearance does this.

Aby w pełni włączyć buforowanie podwójne, można ustawić OptimizedDoubleBuffer i AllPaintingInWmPaint bity na true .To fully enable double-buffering, you can set the OptimizedDoubleBuffer and AllPaintingInWmPaint bits to true. Jednak preferowana metoda włączania podwójnego buforowania, która daje ten sam wynik, polega na ustawieniu DoubleBuffered właściwości dla formantu na true .However the preferred method for enabling double buffering, which yields the same result, is to set the DoubleBuffered property for the control to true.

Jeśli SupportsTransparentBackColor bit jest ustawiony na true , a ustawiono BackColor kolor, którego składnik alfa jest mniejszy niż 255, OnPaintBackground symuluje przezroczystości, zadając jej formant nadrzędny do rysowania tła.If the SupportsTransparentBackColor bit is set to true, and the BackColor is set to a color whose alpha component is less than 255, OnPaintBackground will simulate transparency by asking its parent control to paint the background. Ta wartość nie jest prawdziwa.This is not true transparency.

Uwaga

Jeśli istnieje inny formant między formantem i jego elementem nadrzędnym, bieżąca kontrolka nie będzie wyświetlać kontrolki w środku.If there is another control between the control and its parent, the current control will not show the control in the middle.

Gdy bit UserMouse jest ustawiony na true , następujące metody są nadal wywoływane:,,,,, Control.OnMouseDown Control.OnMouseUp Control.OnMouseEnter Control.OnMouseMove Control.OnMouseHover Control.OnMouseLeave , i Control.OnMouseWheel .When the UserMouse bit is set to true, the following methods are still called: Control.OnMouseDown, Control.OnMouseUp, Control.OnMouseEnter, Control.OnMouseMove, Control.OnMouseHover, Control.OnMouseLeave, and Control.OnMouseWheel.

Gdy formant zostanie kliknięty, jeśli StandardClick bit jest ustawiony na true Control.OnClick metodę jest wywoływana i wywołuje Control.Click zdarzenie.When the control is clicked, if the StandardClick bit is set to true the Control.OnClick method is called and it raises the Control.Click event. Gdy kontrolka jest podwójnie kliknięta, a zarówno StandardClick, jak i StandardDoubleClick bity są ustawione na true , kliknięcie zostanie przesłane do DoubleClick zdarzenia.When the control is double-clicked, and both the StandardClick and StandardDoubleClick bits are set to true, the click is passed on to the DoubleClick event. Następnie Control.OnDoubleClick Metoda jest wywoływana i wywołuje Control.DoubleClick zdarzenie.Then the Control.OnDoubleClick method is called and it raises the Control.DoubleClick event. Jednak kontrolka może wywołać OnClick lub OnDoubleClick bezpośrednio niezależnie od wartości bitów StandardClick i StandardDoubleClick.However, the control can call OnClick or OnDoubleClick directly regardless of the StandardClick and StandardDoubleClick bit values. Aby uzyskać więcej informacji na temat kontroli kliknięcia i podwójnego kliknięcia, Control.Click Zobacz Control.DoubleClick Tematy i.For more information on control click and double click behaviors, see the Control.Click and Control.DoubleClick topics.

Gdy UseTextForAccessibility bit jest ustawiony i istnieje wartość właściwości kontrolki Text , wartość tej właściwości kontrolki Text określa domyślną nazwę i klawisz skrótu formantu.When the UseTextForAccessibility bit is set and there is a value in the control's Text property, the value of that control's Text property determines the control's default Active Accessibility name and shortcut key. W przeciwnym razie Label zamiast tego zostanie użyty tekst powyższej kontrolki.Otherwise, the text of the preceding Label control will be used instead. Ten styl jest ustawiany domyślnie.This style is set by default. Niektóre wbudowane typy formantów, takie jak TextBox i ComboBox , resetują ten styl tak, aby Text Właściwość tych kontrolek nie była używana przez aktywną dostępność.Certain built-in control types, such as TextBox and ComboBox, reset this style so that the Text property of those controls will not be used by Active Accessibility.

Dotyczy

Zobacz też