Sdílet prostřednictvím


ControlStyles Výčet

Definice

Určuje styl a chování ovládacího prvku.

Tento výčet podporuje bitové kombinace hodnot jeho členů.

public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles = 
Public Enum ControlStyles
Dědičnost
ControlStyles
Atributy

Pole

Name Hodnota Description
ContainerControl 1

Pokud truese jedná o ovládací prvek podobný kontejneru.

UserPaint 2

Pokud trueovládací prvek maluje sám sebe místo operačního systému. Pokud falseudálost Paint není vyvolána. Tento styl se vztahuje pouze na třídy odvozené z Control.

Opaque 4

Pokud trueje ovládací prvek nakreslený neprůhledný a pozadí není vykresleno.

ResizeRedraw 16

Pokud trueje ovládací prvek při změně velikosti překreslen.

FixedWidth 32

Pokud truemá ovládací prvek při automatickém škálování pevnou šířku. Pokud se například operace rozložení pokusí změnit měřítko ovládacího prvku tak, aby vyhovovalo novému Font, zůstane ovládací prvek Width beze změny.

FixedHeight 64

Pokud truemá ovládací prvek pevnou výšku při automatickém škálování. Pokud se například operace rozložení pokusí změnit měřítko ovládacího prvku tak, aby vyhovovalo novému Font, zůstane ovládací prvek Height beze změny.

StandardClick 256

Pokud true, ovládací prvek implementuje standardní Click chování.

Selectable 512

Pokud true, ovládací prvek může dostat fokus.

UserMouse 1024

Pokud trueovládací prvek zpracovává vlastní zpracování myši a operační systém nezpracovává události myši.

SupportsTransparentBackColor 2048

Pokud trueovládací prvek přijme alfa komponentu BackColor menší než 255 k simulaci průhlednosti. Průhlednost bude simulována pouze v případě UserPaint , že je bit nastaven true na a nadřazený ovládací prvek je odvozen z Control.

StandardDoubleClick 4096

Pokud true, ovládací prvek implementuje standardní DoubleClick chování. Tento styl je ignorován, pokud StandardClick bit není nastaven na true.

AllPaintingInWmPaint 8192

Pokud true, ovládací prvek ignoruje zprávu okna WM_ERASEBKGND snížit blikající. Tento styl by měl být použit pouze v případě UserPaint , že je bit nastaven na true.

CacheText 16384

Pokud trueovládací prvek zachová kopii textu místo toho, aby ho Handle získal pokaždé, když je potřeba. Tento styl má výchozí hodnotu false. Toto chování zlepšuje výkon, ale znesnadňuje synchronizaci textu.

EnableNotifyMessage 32768

Pokud trueje OnNotifyMessage(Message) volána metoda pro každou zprávu poslanou do ovládacího prvku WndProc(Message). Tento styl má výchozí hodnotu false. EnableNotifyMessage nefunguje v částečném vztahu důvěryhodnosti.

DoubleBuffer 65536

Pokud truese výkres provede ve vyrovnávací paměti a po jeho dokončení se výsledek zobrazí na obrazovce. Dvojité ukládání do vyrovnávací paměti zabraňuje blikání způsobené překreslením ovládacího prvku. Pokud jste nastavili DoubleBuffertrue, měli byste také nastavit UserPaint a AllPaintingInWmPaint na true.

OptimizedDoubleBuffer 131072

Pokud trueje ovládací prvek nejprve nakreslen do vyrovnávací paměti místo přímo na obrazovku, což může snížit blikání. Pokud tuto vlastnost nastavíte na true, měli byste také nastavit AllPaintingInWmPaint hodnotu true.

UseTextForAccessibility 262144

Určuje, že hodnota vlastnosti ovládacího prvku Text , pokud je nastavena, určuje výchozí název a klávesovou zkratku ovládacího prvku Active Accessibility.

ApplyThemingImplicitly 524288

U některých barevných režimů souvisejících s uživatelským rozhraním (tmavý režim nebo světlý režim) se ovládací prvky můžou přihlásit, aby automaticky použily příslušné motivy. Z tohoto nastavení můžou těžit zejména ovládací prvky, které využívají posuvníky spravované systémem. Všimněte si, že použití tohoto nastavení způsobí, že některé win32 řídí motivy rendererů neaktivní pro určitý motiv.

Příklady

Následující příklad ukazuje použití ControlStyles s událostí 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

Poznámky

Ovládací prvky používají tento výčet v různých vlastnostech a metodách k určení funkčnosti. Ovládací prvek může povolit styl voláním SetStyle metody a předáním příslušného ControlStyles bitu (nebo bitů) a logické hodnoty pro nastavení bitů. Například následující řádek kódu jazyka Visual Basic by umožnil dvojité ukládání do vyrovnávací paměti.

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

Pokud je bit AllPaintingInWmPaint nastaven na true, zpráva okna WM_ERASEBKGND je ignorována a obě OnPaintBackground i OnPaint metody jsou volány přímo ze zprávy okna WM_PAINT. To obecně snižuje blikání, pokud ostatní ovládací prvky neposílají zprávu okna WM_ERASEBKGND ovládacímu prvku. Zprávu okna můžete odeslat WM_ERASEBKGRND k dosažení pseudoprůhledný efekt podobný SupportsTransparentBackColor; Například s plochým ToolBar vzhledem to dělá.

Chcete-li plně povolit dvojité ukládání do vyrovnávací paměti, můžete nastavit OptimizedDoubleBuffer a AllPaintInWmPaint bity na true. Upřednostňovanou metodou pro povolení dvojité vyrovnávací paměti, která přináší stejný výsledek, je nastavit DoubleBuffered vlastnost pro ovládací prvek na true.

Pokud je bit SupportsTransparentBackColor nastaven na truea BackColor je nastavena na barvu, jejíž alfa komponenta je menší než 255, simuluje průhlednost tím, OnPaintBackground že požádá jeho nadřazený ovládací prvek, aby maloval pozadí. To není pravdivá transparentnost.

Poznámka:

Pokud je mezi ovládacím prvek a jeho nadřazeným ovládacím prvek jiný ovládací prvek, aktuální ovládací prvek se nezobrazí uprostřed.

Pokud je bit UserMouse nastaven na true, následující metody jsou stále volána: Control.OnMouseDown, Control.OnMouseUp, , Control.OnMouseEnterControl.OnMouseMove, Control.OnMouseHover, Control.OnMouseLeave, a Control.OnMouseWheel.

Po kliknutí na ovládací prvek, pokud je bit StandardClick nastaven na true metodu Control.OnClick je volána a vyvolá Control.Click událost. Při poklikání ovládacího prvku a bity StandardClick i StandardDoubleClick jsou nastaveny na true, kliknutí se předá události DoubleClick . Control.OnDoubleClick Pak je volána metoda a vyvolá Control.DoubleClick událost. Ovládací prvek však může volat OnClick nebo OnDoubleClick přímo bez ohledu na hodnoty bitů StandardClick a StandardDoubleClick. Další informace o chování kliknutí na ovládací prvek a poklikání najdete v Control.Click tématech a Control.DoubleClick tématech.

Pokud je bit UseTextForAccessibility nastaven a existuje hodnota ve vlastnosti ovládacího prvku Text , hodnota vlastnosti ovládacího prvku určuje výchozí název a klávesovou zkratku ovládacího prvku Text Active Accessibility. Jinak se místo toho použije text předchozího Label ovládacího prvku. Tento styl je ve výchozím nastavení nastavený. Některé předdefinované typy ovládacích prvků, například TextBox a ComboBox, tento styl resetují tak, aby Text vlastnost těchto ovládacích prvků nebyla používána službou Active Accessibility.

Platí pro

Viz také