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

AllPaintingInWmPaint 8192

Pokud true, ovládací prvek ignoruje zprávu okna WM_ERASEBKGND, aby se omezilo blikání. Tento styl by se měl použít pouze v UserPaint případě, že je bit nastavený na truehodnotu .

CacheText 16384

Pokud true, ovládací prvek zachová kopii textu, místo aby ji získal z Handle pokaždé, když je potřeba. Výchozí hodnota tohoto stylu je false. Toto chování zlepšuje výkon, ale ztěžuje synchronizaci textu.

ContainerControl 1

Pokud true, jedná se o ovládací prvek podobný kontejneru.

DoubleBuffer 65536

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

EnableNotifyMessage 32768

Pokud true, OnNotifyMessage(Message) metoda je volána pro každou zprávu odeslanou do ovládacího prvku WndProc(Message). Výchozí hodnota tohoto stylu je false. EnableNotifyMessage nefunguje v částečném vztahu důvěryhodnosti.

FixedHeight 64

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

FixedWidth 32

Pokud true, má 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 vyhovoval novému Font, zůstane ovládací prvek Width beze změny.

Opaque 4

Pokud true, je ovládací prvek nakreslen neprůhledný a pozadí není namalováno.

OptimizedDoubleBuffer 131072

Pokud true, je 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 na AllPaintingInWmPainttrue.

ResizeRedraw 16

Pokud truese změní velikost ovládacího prvku, překreslí se.

Selectable 512

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

StandardClick 256

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

StandardDoubleClick 4096

Pokud true, ovládací prvek implementuje standardní DoubleClick chování. Tento styl se ignoruje, pokud StandardClick bit není nastavený na truehodnotu .

SupportsTransparentBackColor 2048

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

UserMouse 1024

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

UserPaint 2

Pokud true, ovládací prvek se vybarví sám, nikoli operační systém, který to dělá. Pokud false, Paint událost se nevyvolá. Tento styl se vztahuje pouze na třídy odvozené z Control.

UseTextForAccessibility 262144

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

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 AllPaintingInWmPaint bit je nastavena na true, zpráva okna WM_ERASEBKGND je ignorována a metody a OnPaintBackgroundOnPaint jsou volány přímo z okna zprávy WM_PAINT. To obecně snižuje blikání, pokud jiné ovládací prvky neodesílají zprávu okna WM_ERASEBKGND ovládacímu prvku. Můžete odeslat okno zprávy WM_ERASEBKGRND k dosažení pseudoprůhledný efekt podobný SupportsTransparentBackColor; Například s plochým ToolBar vzhledem to dělá.

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

Pokud supportsTransparentBackColor bit je nastavena na truea BackColor je nastavena na barvu, jejíž alfa komponenta je menší než 255, bude simulovat průhlednost tím, OnPaintBackground že požádá nadřazený ovládací prvek o vykreslení pozadí. Nejedná se o skutečnou transparentnost.

Poznámka

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

Pokud je bit UserMouse nastavený na true, stále se volají následující metody: Control.OnMouseDown, Control.OnMouseUp, , Control.OnMouseEnter, Control.OnMouseMoveControl.OnMouseHover, Control.OnMouseLeavea Control.OnMouseWheel.

Při kliknutí na ovládací prvek, pokud je bit StandardClick nastaven na true metodu Control.OnClick je volána a vyvolá Control.Click událost. Když je na ovládací prvek poklikání a bity StandardClick i StandardDoubleClick jsou nastaveny na truehodnotu , předá se kliknutí události DoubleClick . Pak je Control.OnDoubleClick 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í ovládacích prvků při kliknutí a poklikání najdete v tématech Control.Click a Control.DoubleClick .

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

Platí pro

Viz také