.NET에서 ComboBox를 편집 할 수 없도록하려면 어떻게해야합니까?


205

ComboBox사용자가 선택할 수있는 항목 목록을 제공 하는 "선택 전용" 을 원합니다 . ComboBox컨트롤 의 텍스트 부분에서 입력을 비활성화해야합니다 .

이것에 대한 나의 초기 인터넷 검색은 KeyPress이벤트 를 포착하기위한 지나치게 복잡하고 잘못된 안내를 주었다 .

답변:


378

ComboBox의 텍스트 부분을 편집 할 수 없게 만들려면 DropDownStyle 속성을 "DropDownList"로 설정하십시오. ComboBox는 이제 사용자에게 기본적으로 선택 전용입니다. Visual Studio 디자이너 또는 C #에서 다음과 같이 할 수 있습니다.

stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList;

MSDN 의 ComboBox DropDownStyle 속성 에 대한 설명서 링크


8
이를 염두에 두어야 할 한 가지는 더 이상 Text프로그래밍 방식으로 속성을 업데이트 할 수 없다는 것을 의미합니다.ComboBox.SelectedIndex = -1;
Lankymart

코드에서 편집하지 않고도 Visual C # 용 GUI를 통해이를 수행 할 수있는 방법이 있습니까? '기본 값'인 것처럼 설정하는 것이 일반적인 것
같습니다.

6
회색 모양을 피하려면 어떻게해야합니까?
Anders Lindén

2
@ AndersLindén은 FlatStyle 속성을 Flat로 설정합니다.
Xam

@Xam 그렇다면 국경은 어디입니까? 인터넷 검색을 할 때 그림을 받아 들일 수 있어야합니다.
Anders Lindén

67

Visual Studio GUI 참조를 추가하려면 DropDownStyle선택한 ComboBox의 속성 에서 옵션을 찾을 수 있습니다 .

여기에 이미지 설명을 입력하십시오

첫 번째 답변에서 언급 한 줄을 Form.Designer.cs에 자동으로 추가합니다 InitializeComponent().

this.comboBoxBatch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;

33

ComboBox를 유지하고 속성 창에서 DropDropStyle 속성을 검색 한 다음 DropDownList 를 선택하십시오 .



1

선택 후 입력에 데이터를 계속 표시하려면 다음을 수행하십시오.

VB.NET
Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress
    e.Handled = True
End Sub



C#
Private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = true;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.