ControlStyles 열거형

정의

컨트롤의 스타일 및 동작을 지정합니다.

이 열거형은 멤버 값의 비트 조합을 지원합니다.

public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles = 
Public Enum ControlStyles
상속
ControlStyles
특성

필드

AllPaintingInWmPaint 8192

true이면 컨트롤은 깜빡임을 줄이기 위해 WM_ERASEBKGND 창 메시지를 무시합니다. 이 스타일은 UserPaint 비트가 true로 설정된 경우에만 적용되어야 합니다.

CacheText 16384

true이면 컨트롤은 필요할 때마다 Handle에서 텍스트를 가져오지 않고 텍스트 복사본을 유지합니다. 이 스타일의 기본값은 false입니다. 이 동작에 의해 성능은 향상되지만 텍스트를 동기화 상태로 유지하기가 어렵습니다.

ContainerControl 1

true이면 컨트롤이 컨테이너와 유사한 컨트롤입니다.

DoubleBuffer 65536

true이면 그리기가 버퍼에서 수행되고 완료된 후에 결과가 화면에 출력됩니다. 이중 버퍼링은 컨트롤을 다시 그릴 때 발생하는 깜박임을 방지합니다. DoubleBuffertrue로 설정한 경우 UserPaintAllPaintingInWmPainttrue로 설정해야 합니다.

EnableNotifyMessage 32768

true이면 WndProc(Message)로 전송되는 모든 메시지에 대해 OnNotifyMessage(Message) 메서드가 호출됩니다. 이 스타일의 기본값은 false입니다. EnableNotifyMessage는 부분 신뢰 환경에서 작동하지 않습니다.

FixedHeight 64

true이면 컨트롤은 자동으로 크기가 조정될 때 높이가 고정됩니다. 예를 들어 레이아웃 작업이 새 Font를 수용하도록 컨트롤의 크기를 변경하려고 할 경우 컨트롤의 Height는 그대로 유지됩니다.

FixedWidth 32

true이면 컨트롤은 자동으로 크기가 조정될 때 너비가 고정됩니다. 예를 들어 레이아웃 작업이 새 Font를 수용하도록 컨트롤의 크기를 변경하려고 할 경우 컨트롤의 Width는 그대로 유지됩니다.

Opaque 4

true이면 컨트롤은 불투명하게 그려지고 배경은 그려지지 않습니다.

OptimizedDoubleBuffer 131072

true이면 컨트롤은 화면에 직접 그려지지 않고 먼저 버퍼에 그려지므로 깜빡임을 줄일 수 있습니다. 이 속성을 true로 설정하는 경우 AllPaintingInWmPainttrue로 설정해야 합니다.

ResizeRedraw 16

true이면 컨트롤은 크기가 조정될 때 다시 그려집니다.

Selectable 512

true이면 컨트롤이 포커스를 받을 수 있습니다.

StandardClick 256

true이면 컨트롤은 표준 Click 동작을 구현합니다.

StandardDoubleClick 4096

true이면 컨트롤은 표준 DoubleClick 동작을 구현합니다. 이 스타일은 StandardClick 비트가 true로 설정되지 않으면 무시됩니다.

SupportsTransparentBackColor 2048

true이면 컨트롤은 투명도를 시뮬레이트하기 위해 알파 구성 요소가 255 미만인 BackColor를 수락합니다. UserPaint 비트가 true로 설정되고 부모 컨트롤이 Control에서 파생될 경우에만 투명도가 시뮬레이트됩니다.

UserMouse 1024

true이면 컨트롤은 자체 마우스 처리를 수행하고 마우스 이벤트가 운영 체제에 의해 처리되지 않습니다.

UserPaint 2

true이면 운영 체제에서 컨트롤을 그리지 않고 컨트롤이 자체적으로 그려집니다. false이면 Paint 이벤트가 발생하지 않습니다. 이 스타일은 Control에서 파생된 클래스에만 적용됩니다.

UseTextForAccessibility 262144

컨트롤의 Text 속성 값을 설정한 경우 컨트롤의 기본 Active Accessibility 이름 및 바로 가기 키를 결정한다고 지정합니다.

예제

다음 예제에서는 사용 하 여는 ControlStyles 이벤트입니다 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

설명

컨트롤은 다양한 속성 및 메서드에서 이 열거형을 사용하여 기능을 지정합니다. 컨트롤은 메서드를 호출 SetStyle 하고 적절한 ControlStyles 비트(또는 비트) 및 부울 값을 전달하여 비트를 로 설정하여 스타일을 사용하도록 설정할 수 있습니다. 예를 들어 다음 Visual Basic 코드 줄에서는 이중 버퍼링을 사용하도록 설정합니다.

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

AllPaintingInWmPaint 비트가 로 설정된 true경우 창 메시지 WM_ERASEBKGND 무시되고 및 메서드가 창 OnPaintBackgroundOnPaint 메시지 WM_PAINT 직접 호출됩니다. 이는 일반적으로 다른 컨트롤이 컨트롤에 WM_ERASEBKGND 창 메시지를 보내지 않는 한 깜박임을 줄입니다. WM_ERASEBKGRND 창 메시지를 보내 SupportsTransparentBackColor와 유사한 의사 투명 효과를 얻을 수 있습니다. 예를 들어 ToolBar 가 평평한 모양으로 이 작업을 수행합니다.

이중 버퍼링을 완전히 사용하도록 설정하려면 OptimizedDoubleBuffer 및 AllPaintingInWmPaint 비트를 로 true설정할 수 있습니다. 그러나 동일한 결과를 생성하는 이중 버퍼링을 사용하도록 설정하는 기본 방법은 컨트롤의 DoubleBuffered 속성을 로 설정하는 것입니다 true.

SupportsTransparentBackColor 비트가 로 설정되어 true있고 BackColor 이 알파 구성 요소가 255 OnPaintBackground 미만인 색으로 설정된 경우 는 부모 컨트롤에 배경을 그리도록 요청하여 투명도를 시뮬레이션합니다. 이것은 진정한 투명성이 아닙니다.

참고

컨트롤과 부모 사이에 다른 컨트롤이 있는 경우 현재 컨트롤은 중간에 컨트롤을 표시하지 않습니다.

UserMouse 비트가 로 true설정되면 , , , Control.OnMouseMoveControl.OnMouseUpControl.OnMouseEnterControl.OnMouseHoverControl.OnMouseLeaveControl.OnMouseWheel메서드가 여전히 호출Control.OnMouseDown됩니다.

컨트롤을 클릭하면 StandardClick 비트가 메서드로 trueControl.OnClick 설정되고 이벤트가 발생합니다 Control.Click . 컨트롤을 두 번 클릭하고 StandardClick 및 StandardDoubleClick 비트가 모두 로 true설정되면 클릭이 이벤트에 전달됩니다 DoubleClick . 그런 다음 메서드가 Control.OnDoubleClick 호출되고 이벤트가 발생합니다 Control.DoubleClick . 그러나 컨트롤은 StandardClick 및 StandardDoubleClick 비트 값에 관계없이 또는 OnDoubleClick 를 직접 호출 OnClick 할 수 있습니다. 제어 클릭 및 두 번 클릭 동작에 대한 자세한 내용은 및 Control.DoubleClick topics 참조 Control.Click 하세요.

UseTextForAccessibility 비트가 설정되고 컨트롤의 Text 속성에 값이 있는 경우 해당 컨트롤의 Text 속성 값에 따라 컨트롤의 기본 활성 접근성 이름 및 바로 가기 키가 결정됩니다. 그렇지 않으면 이전 Label 컨트롤의 텍스트가 대신 사용됩니다. 이 스타일은 기본적으로 설정됩니다. 및 와 ComboBox같은 TextBox 특정 기본 제공 컨트롤 형식은 활성 접근성에서 해당 컨트롤의 속성을 사용하지 않도록 Text 이 스타일을 다시 설정합니다.

적용 대상

추가 정보