ControlStyles Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- Atrybuty
Pola
AllPaintingInWmPaint | 8192 | Jeśli |
CacheText | 16384 | Jeśli |
ContainerControl | 1 | Jeśli |
DoubleBuffer | 65536 | Jeśli |
EnableNotifyMessage | 32768 | Jeśli |
FixedHeight | 64 | Jeśli |
FixedWidth | 32 | Jeśli |
Opaque | 4 | Jeśli |
OptimizedDoubleBuffer | 131072 | Jeśli |
ResizeRedraw | 16 | Jeśli |
Selectable | 512 | Jeśli |
StandardClick | 256 | Jeśli |
StandardDoubleClick | 4096 | Jeśli |
SupportsTransparentBackColor | 2048 | Jeśli |
UserMouse | 1024 | Jeśli |
UserPaint | 2 | Jeśli |
UseTextForAccessibility | 262144 | Określa, że wartość właściwości 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 true
wartość . 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 true
wartość , 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 true
Control.OnClick metodę jest wywoływana Control.Click i zgłasza zdarzenie. Po dwukrotnym kliknięciu kontrolki i ustawieniu bitów StandardClick i StandardDoubleClick na true
wartość , 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.