ControlStyles Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- Atributy
Pole
| Name | Hodnota | Description |
|---|---|---|
| ContainerControl | 1 | Pokud |
| UserPaint | 2 | Pokud |
| Opaque | 4 | Pokud |
| ResizeRedraw | 16 | Pokud |
| FixedWidth | 32 | Pokud |
| FixedHeight | 64 | Pokud |
| StandardClick | 256 | Pokud |
| Selectable | 512 | Pokud |
| UserMouse | 1024 | Pokud |
| SupportsTransparentBackColor | 2048 | Pokud |
| StandardDoubleClick | 4096 | Pokud |
| AllPaintingInWmPaint | 8192 | Pokud |
| CacheText | 16384 | Pokud |
| EnableNotifyMessage | 32768 | Pokud |
| DoubleBuffer | 65536 | Pokud |
| OptimizedDoubleBuffer | 131072 | Pokud |
| UseTextForAccessibility | 262144 | Určuje, že hodnota vlastnosti ovládacího prvku |
| 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.