2014-02-18 3 views
0

in C# with DotNet 4 나는 프로그램을 시작할 때 값으로 채워지는 콤보 박스가있는 폼을 가지고있다. 이제 사용자는 드롭 다운하여 값 중 하나를 선택할 수 있습니다. 하지만 combobox 필드에 새로운 것을 쓸 수도 있습니다.콤보 박스에서 유효한 값만 허용하는 방법은 무엇입니까?

질문 : 목록에 포함되지 않은 것을 쓸 수 없다면 어떻게해야합니까?

감사

답변

3

가 콤보 상자의 텍스트 부분이 편집 할 수 있도록하기 위해, DropDownStyle 속성을 "DropDownList로"로 설정하십시오.

1

콤보 상자 .DropDownStyle = ComboBoxStyle.DropDownList에 속성을 지정하기 만하면됩니다. 하지만이 속성은 텍스트를 편집 할 수 없습니다. 마우스 또는 위/아래 화살표 키를 사용하여 항목을 선택해야한다는 의미입니다. 이 속성을 선택하여 결과를 필터링 할 수 없습니다. 결과를 필터링하지만 잘못된 값을 허용하지 않으려면 cmb_Validating 이벤트에 코드를 작성하면됩니다.

private void cmb_Validating(object sender, CancelEventArgs e) 
{ 
    if (cmb.SelectedValue == null && cmb.Text != string.Empty) 
     e.Cancel=true; 
} 
+0

잘못된 텍스트를 콤보 상자에 삽입하면 아무 일도 일어나지 않습니다. 새 이벤트의 중단 점이 e.cancel = true에서 중지되지만 그 다음은 무엇입니까? –

+0

컨트롤 포커스가 변경되면 이벤트를 확인합니다. 따라서 응용 프로그램에서는 유효한 값을 지정하지 않고 다른 컨트롤을 포커스 할 수 없습니다. 그래서, 여기에 유효한 값을 지정해야합니다. 그렇지 않으면 응용 프로그램이 양식에서 아무 것도 할 수 없습니다. – Shell

관련 문제