ControlStyles Wyliczenie

Definicja

Określa styl i zachowanie kontrolki.

To wyliczenie obsługuje 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 truekontrolka ignoruje komunikat okna WM_ERASEBKGND w celu zmniejszenia migotania. Ten styl należy zastosować tylko wtedy, gdy UserPaint bit jest ustawiony na truewartość .

CacheText 16384

Jeśli trueelement , kontrolka przechowuje kopię tekstu, a nie z każdej potrzebnej Handle kopii tekstu. Ten styl domyślnie ma wartość false. To zachowanie poprawia wydajność, ale utrudnia synchronizowanie tekstu.

ContainerControl 1

Jeśli true, kontrolka jest kontrolką podobną do kontenera.

DoubleBuffer 65536

Jeśli truerysunek jest wykonywany w buforze, a po jego zakończeniu wynik jest zwracany do ekranu. Buforowanie podwójne zapobiega migotaniu spowodowanego ponownym rysowaniem kontrolki. Jeśli ustawisz wartość DoubleBuffertrue, należy również ustawić wartość UserPaint i AllPaintingInWmPaint na true.

EnableNotifyMessage 32768

Jeśli truemetoda jest wywoływana OnNotifyMessage(Message) dla każdego komunikatu wysyłanego do kontrolki WndProc(Message). Ten styl domyślnie ma wartość false. EnableNotifyMessage nie działa w częściowej relacji zaufania.

FixedHeight 64

Jeśli truekontrolka ma stałą wysokość podczas automatycznego skalowania. Jeśli na przykład operacja układu próbuje zmienić skalę kontrolki, aby uwzględnić nową Fontkontrolkę, kontrolka pozostaje niezmieniona Height .

FixedWidth 32

Jeśli truekontrolka ma stałą szerokość podczas automatycznego skalowania. Jeśli na przykład operacja układu próbuje zmienić skalę kontrolki, aby uwzględnić nową Fontkontrolkę, kontrolka pozostaje niezmieniona Width .

Opaque 4

Jeśli truekontrolka jest rysowana nieprzezroczyste, a tło nie jest malowane.

OptimizedDoubleBuffer 131072

Jeśli truekontrolka jest najpierw rysowana do buforu, a nie bezpośrednio na ekranie, co może zmniejszyć migotanie. Jeśli ustawisz tę właściwość na truewartość , należy również ustawić truewartość AllPaintingInWmPaint .

ResizeRedraw 16

Jeśli truekontrolka zostanie ponownie narysowana po zmianie rozmiaru.

Selectable 512

Jeśli true, kontrolka może otrzymać fokus.

StandardClick 256

Jeśli truekontrolka implementuje standardowe Click zachowanie.

StandardDoubleClick 4096

Jeśli truekontrolka implementuje standardowe DoubleClick zachowanie. Ten styl jest ignorowany, jeśli StandardClick bit nie jest ustawiony na truewartość .

SupportsTransparentBackColor 2048

Jeśli truekontrolka akceptuje BackColor element ze składnikiem alfa o wartości mniejszej niż 255, aby symulować przezroczystość. Przezroczystość będzie symulowana tylko wtedy, gdy UserPaint bit jest ustawiony na true , a kontrolka nadrzędna jest pochodna .Control

UserMouse 1024

Jeśli truekontrolka wykonuje własne przetwarzanie myszy, a zdarzenia myszy nie są obsługiwane przez system operacyjny.

UserPaint 2

Jeśli true, kontrolka maluje się zamiast systemu operacyjnego. Jeśli falsezdarzenie Paint nie zostanie zgłoszone. Ten styl ma zastosowanie tylko do klas pochodzących z Controlklasy .

UseTextForAccessibility 262144

Określa, że wartość właściwości kontrolki Text , jeśli jest ustawiona, określa domyślną nazwę active accessibility i klawisz skrótu kontrolki.

Przykłady

W poniższym przykładzie pokazano użycie z ControlStyles zdarzeniem 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

Uwagi

Kontrolki używają tego wyliczenia w różnych właściwościach i metodach do określania funkcjonalności. Kontrolka może włączyć styl, wywołując SetStyle metodę i przekazując odpowiedni ControlStyles bit (lub bity) oraz wartość logiczną, aby ustawić bity na . Na przykład poniższy wiersz kodu Języka Visual Basic umożliwia podwójne buforowanie.

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

Jeśli bit AllPaintingInWmPaint jest ustawiony na true, komunikat okna WM_ERASEBKGND jest ignorowany, a metody OnPaintBackground i OnPaint są wywoływane bezpośrednio z komunikatu okna WM_PAINT. Zazwyczaj zmniejsza to migotanie, chyba że inne kontrolki wysyłają komunikat okna WM_ERASEBKGND do kontrolki. Możesz wysłać komunikat okna WM_ERASEBKGRND, aby osiągnąć efekt pseudo-przezroczysty podobny do SupportsTransparentBackColor; na przykład element z płaskim wyglądem ToolBar robi to.

Aby w pełni włączyć podwójne buforowanie, można ustawić parametr OptimizedDoubleBuffer i AllPaintingInWmPaint bitów na truewartość . Jednak preferowaną metodą włączania podwójnego buforowania, która daje ten sam wynik, jest ustawienie DoubleBuffered właściwości kontrolki na true.

Jeśli bit SupportsTransparentBackColor jest ustawiony na true, a BackColor parametr jest ustawiony na kolor, którego składnik alfa jest mniejszy niż 255, symuluje przezroczystość, OnPaintBackground prosząc kontrolkę nadrzędną o malowanie tła. To nie jest prawdziwa przejrzystość.

Uwaga

Jeśli istnieje inna kontrolka między kontrolką a jej elementem nadrzędnym, bieżąca kontrolka nie będzie pokazywać kontrolki w środku.

Gdy bit UserMouse jest ustawiony na truewartość , nadal są wywoływane następujące metody: Control.OnMouseDown, , Control.OnMouseUp, Control.OnMouseMoveControl.OnMouseLeaveControl.OnMouseEnterControl.OnMouseHoveri .Control.OnMouseWheel

Po kliknięciu kontrolki, jeśli bit StandardClick jest ustawiony na trueControl.OnClick metodę jest wywoływana Control.Click i zgłasza zdarzenie. Po dwukrotnym kliknięciu kontrolki i ustawieniu bitów StandardClick i StandardDoubleClick na truewartość , kliknięcie zostanie przekazane do DoubleClick zdarzenia. Control.OnDoubleClick Następnie metoda jest wywoływana i zgłasza Control.DoubleClick zdarzenie. Kontrolka może jednak wywoływać OnClick lub OnDoubleClick bezpośrednio niezależnie od wartości bitów StandardClick i StandardDoubleClick. Aby uzyskać więcej informacji na temat kliknięć kontrolek i dwukrotnego kliknięcia, zobacz Control.Click tematy i Control.DoubleClick .

Gdy bit UseTextForAccessibility jest ustawiony i istnieje wartość we właściwości kontrolki Text , wartość właściwości kontrolki Text określa domyślną nazwę aktywnej dostępności i klawisz skrótu kontrolki. W przeciwnym razie zostanie użyty tekst poprzedniej Label kontrolki. Ten styl jest domyślnie ustawiany. Niektóre wbudowane typy kontrolek, takie jak TextBox i ComboBox, zresetuj ten styl, aby Text właściwość tych kontrolek nie była używana przez aktywne ułatwienia dostępu.

Dotyczy

Zobacz też