ControlStyles Enum

Definisi

Menentukan gaya dan perilaku kontrol.

Enumerasi ini mendukung kombinasi bitwise dari nilai yang termasuk di dalamnya.

public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles = 
Public Enum ControlStyles
Warisan
ControlStyles
Atribut

Bidang

AllPaintingInWmPaint 8192

Jika true, kontrol mengabaikan pesan jendela WM_ERASEBKGND untuk mengurangi kedipan. Gaya ini hanya boleh diterapkan jika UserPaint bit diatur ke true.

CacheText 16384

Jika true, kontrol menyimpan salinan teks daripada mendapatkannya dari Handle setiap kali diperlukan. Gaya ini default ke false. Perilaku ini meningkatkan performa, tetapi menyulitkan untuk menjaga teks tetap sinkron.

ContainerControl 1

Jika true, kontrol adalah kontrol seperti kontainer.

DoubleBuffer 65536

Jika true, gambar dilakukan dalam buffer, dan setelah selesai, hasilnya adalah output ke layar. Buffering ganda mencegah kedipan yang disebabkan oleh penggambaran ulang kontrol. Jika Anda mengatur DoubleBuffer ke true, Anda juga harus mengatur UserPaint dan AllPaintingInWmPaint ke true.

EnableNotifyMessage 32768

Jika true, metode dipanggil OnNotifyMessage(Message) untuk setiap pesan yang dikirim ke kontrol WndProc(Message). Gaya ini default ke false. EnableNotifyMessage tidak bekerja dalam kepercayaan parsial.

FixedHeight 64

Jika true, kontrol memiliki tinggi tetap saat diskalakan otomatis. Misalnya, jika operasi tata letak mencoba untuk menskalakan ulang kontrol untuk mengakomodasi yang baru Font, kontrol tetap Height tidak berubah.

FixedWidth 32

Jika true, kontrol memiliki lebar tetap saat diskalakan otomatis. Misalnya, jika operasi tata letak mencoba untuk menskalakan ulang kontrol untuk mengakomodasi yang baru Font, kontrol tetap Width tidak berubah.

Opaque 4

Jika true, kontrol digambar buram dan latar belakang tidak dicat.

OptimizedDoubleBuffer 131072

Jika true, kontrol pertama-tama digambar ke buffer daripada langsung ke layar, yang dapat mengurangi kedipan. Jika Anda mengatur properti ini ke true, Anda juga harus mengatur ke AllPaintingInWmPainttrue.

ResizeRedraw 16

Jika true, kontrol akan digambar ulang saat diubah ukurannya.

Selectable 512

Jika true, kontrol dapat menerima fokus.

StandardClick 256

Jika true, kontrol mengimplementasikan perilaku standar Click .

StandardDoubleClick 4096

Jika true, kontrol mengimplementasikan perilaku standar DoubleClick . Gaya ini diabaikan jika StandardClick bit tidak diatur ke true.

SupportsTransparentBackColor 2048

Jika true, kontrol menerima BackColor dengan komponen alfa kurang dari 255 untuk mensimulasikan transparansi. Transparansi akan disimulasikan hanya jika UserPaint bit diatur ke true dan kontrol induk berasal dari Control.

UserMouse 1024

Jika true, kontrol melakukan pemrosesan mouse sendiri, dan peristiwa mouse tidak ditangani oleh sistem operasi.

UserPaint 2

Jika true, kontrol melukis dirinya sendiri daripada sistem operasi melakukannya. Jika false, Paint peristiwa tidak dimunculkan. Gaya ini hanya berlaku untuk kelas yang berasal dari Control.

UseTextForAccessibility 262144

Menentukan bahwa nilai properti kontrol Text , jika diatur, menentukan nama Aksesibilitas Aktif default kontrol dan kunci pintasan.

Contoh

Contoh berikut menunjukkan penggunaan ControlStyles dengan peristiwa tersebut 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

Keterangan

Kontrol menggunakan enumerasi ini dalam berbagai properti dan metode untuk menentukan fungsionalitas. Kontrol dapat mengaktifkan gaya dengan memanggil SetStyle metode dan meneruskan bit (atau bit) yang sesuai ControlStyles dan nilai Boolean untuk mengatur bit. Misalnya, baris kode Visual Basic berikut akan mengaktifkan buffering ganda.

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

Jika bit AllPaintingInWmPaint diatur ke true, pesan jendela WM_ERASEBKGND diabaikan, dan metode OnPaintBackground dan OnPaint dipanggil langsung dari pesan jendela WM_PAINT. Ini umumnya mengurangi kedipan kecuali kontrol lain mengirim pesan jendela WM_ERASEBKGND ke kontrol. Anda mungkin mengirim pesan jendela WM_ERASEBKGRND untuk mencapai efek transparan semu yang mirip dengan SupportsTransparentBackColor; misalnya, ToolBar dengan penampilan datar melakukan ini.

Untuk mengaktifkan buffering ganda sepenuhnya, Anda dapat mengatur bit OptimizedDoubleBuffer dan AllPaintingInWmPaint ke true. Namun metode yang disukai untuk mengaktifkan buffering ganda, yang menghasilkan hasil yang sama, adalah mengatur DoubleBuffered properti untuk kontrol ke true.

Jika bit SupportsTransparentBackColor diatur ke true, dan BackColor diatur ke warna yang komponen alfanya kurang dari 255, OnPaintBackground akan mensimulasikan transparansi dengan meminta kontrol induknya untuk melukis latar belakang. Ini bukan transparansi yang benar.

Catatan

Jika ada kontrol lain antara kontrol dan induknya, kontrol saat ini tidak akan menampilkan kontrol di tengah.

Ketika bit UserMouse diatur ke true, metode berikut masih disebut: Control.OnMouseDown, , Control.OnMouseUp, Control.OnMouseEnterControl.OnMouseMove, Control.OnMouseHover, Control.OnMouseLeave, dan Control.OnMouseWheel.

Ketika kontrol diklik, jika bit StandardClick diatur ke trueControl.OnClick metode dipanggil dan meningkatkan Control.Click peristiwa. Saat kontrol diklik ganda, dan bit StandardClick dan StandardDoubleClick diatur ke true, klik diteruskan ke DoubleClick peristiwa. Kemudian metode dipanggil Control.OnDoubleClick dan meningkatkan Control.DoubleClick peristiwa. Namun, kontrol dapat memanggil OnClick atau OnDoubleClick secara langsung terlepas dari nilai bit StandardClick dan StandardDoubleClick. Untuk informasi selengkapnya tentang perilaku klik kontrol dan klik ganda, lihat Control.Click topik dan Control.DoubleClick .

Ketika bit UseTextForAccessibility diatur dan ada nilai dalam properti kontrol Text , nilai properti kontrol tersebut Text menentukan nama Aksesibilitas Aktif dan kunci pintasan default kontrol. Jika tidak, teks kontrol sebelumnya Label akan digunakan sebagai gantinya. Gaya ini diatur secara default. Jenis kontrol bawaan tertentu, seperti TextBox dan ComboBox, reset gaya ini sehingga properti kontrol tersebut Text tidak akan digunakan oleh Aksesibilitas Aktif.

Berlaku untuk

Lihat juga