2011-04-11 10 views
1

C#을 사용하여 WinForms에서 ComboBox의 값을 얻을 수 없습니다.C#에서 콤보 상자의 가치를 얻는 방법?

값 목록이 채워진 ComboBox이 있는데 및 DisplayMember을 설정했습니다.

이제는 선택한 ComboBox 항목의 값을 찾아 UI에서 일치하는 항목을 선택해야합니다. 여기

은 무슨 뜻입니다 : -

나는이 같은 ComboBox로드 -

var list = (from l in db.Loc 
      orderby l.LName ascending 
      select l).ToList(); 
list.Insert(0, new Loc { ID = "-1", Name = "--Select--" }); 
cmb1.BindingContext = new BindingContext(); 
cmb1.DataSource = list; 
cmb1.DisplayMember = "Name"; 
cmb1.ValueMember = "ID"; 

지금 이벤트에, 나는 값 ( ID)와 일치하고 항목을 선택하려합니다.

cmb1.Text = data.Name; 

그러나 어떻게 값과 일치하는 : 나는 Text 속성과 일치하는 경우는 쉽게?

이런 식으로 뭔가 : -

cmb1.Value = data.ID; 
+0

데이터 소스가 콤보 박스에 바인딩되어 있기 때문에 콤보 상자 데이터 소스를 통해 직접 데이터에 액세스 할 수 있습니다. 당신이하려고하는 것을 조금 더 설명해 주시겠습니까? – mservidio

답변

2

이 작동합니다 :

cmb1.SelectedValue = data.ID; 
1

data 다음의 combobox에 바인더 제본 list에 있어야합니다 :

cmb1.SelectedItem = data 

이나, 그렇지 않은 경우 (당신이 어딘가에에서 다른 인스턴스를 검색) :

cmb1.SelectedValue = data.ID 
0

을 사용하여 색인을 얻을 수 있습니다.속성.

cmb1.SelectedValue = data.ID; 
3

당신은 또한 사용할 수 있습니다 사용하여 아이템을 얻을 수 있습니다 ComboBox Value 속성에 "일치"된 값을 할당 하시겠습니까? DisplayMember 및 ValueMember를 올바르게 설정하고 DataSource가 두 속성을 모두 구현하면 값은 자동으로 "일치"됩니다 (예 : 이 "일치"값을 얻으려면 이벤트 핸들러의 Value 특성을 읽을 수 있습니다.

+0

'ToString()'이 필요 없다고 생각합니다. – Homam

+0

@Homam - 당신의 권리, 아프 편집. 너무 많은 ASP.net 요즘! – WraithNath

1

왜 당신이 원하는 당신은 항목의 ID를 알고있는 경우 중 하나 Combo1.SelectedItem 또는 Combo1.Items[Combo1.SelectedIndex]

1

우선 : cmb1.Text = text;ComboBox의 텍스트를 지정된 값으로 변경합니다. 지정된 값과 일치하는 텍스트가있는 항목을 선택하지 않습니다.

cmb1.SelectedValue = value;을 사용하여 지정된 값으로 항목을 선택하십시오.

+0

텍스트 속성을 사용하여 목록에서 항목을 선택하는 것만으로도 효과가 있다고 생각합니다. 나는 그것을 매력처럼 일하면서 사용했습니다. –

관련 문제