2013-01-24 4 views
0

winforms 프로젝트에서 콤보 상자를 사용하려고합니다. 내가 선택하면 콤보 에서 항목을 SelectedValueChangedComboBox 컨트롤에서 값을 가져올 수 없습니다.

 private void ShowContoursForm_Load(object sender, EventArgs e) 
     { 
      cbxSelectShape.DisplayMember = dataSetObject.ObjectShapes.ShapeNameColumn.ColumnName; 
      cbxSelectShape.ValueMember = dataSetObject.ObjectShapes.ShapeIDColumn.ColumnName; 
      cbxSelectShape.DataSource = dataSetObject.ObjectShapes; 
     } 


     private void cbxSelectShape_SelectedValueChanged(object sender, EventArgs e) 
     { 
      var id= (int)cbxSelectShape.SelectValue; 
     } 

해고되고, 변수가 를 얻을 수 ID :

여기 내 코드입니다.

선택한 항목의 값을 가져와야하지만 ID 변수에 항상 null이 표시됩니다. 왜 내가 잘못된 결과를 얻고이 코드를 수정해야합니까?

당신은 이런 식으로 콤보 상자의 인덱스를 얻을 수 있습니다
+1

의 SelectedIndexChanged 이벤트를 사용해보십시오 : http://msdn.microsoft.com/en-us/ 단순히 콤보 변수를 사용 -이 핸들러는 하나의 콤보 상자에 사용 또한, 당신은 보낸 사람을 캐스팅 할 필요가 없습니다 library/system.windows.forms.combobox.selectedindexchanged.aspx – Abbas

+0

이것이 거의 확실하게 달성하려는 최선의 방법은 아니지만 IMO를 사용해야합니다. –

+0

Rev 가장 좋은 방법은 무엇입니까? – Michael

답변

2

: 당신은 값을 얻기 위해 콤보 상자의 SelectedValue 속성을 사용한다

private void cbxSelectShape_SelectedValueChanged(object sender, EventArgs e) 
    { 
     var id= ((ComboBox)sender).SelectedIndex; 
    } 
1

(귀하의 경우 ShapeID) ValueMember과 관련된 :

var id = ((ComboBox)sender).SelectedValue; 

SelectedIndex는 콤보 상자에서 선택된 항목의 색인을 반환합니다.

var id = cbxSelectShape.SelectedValue; 
+0

여전히 null이됩니다! – Michael

+0

@ 마이클 테이블에 데이터가 있는지 확인 하시겠습니까? 중단 점을 설정하고'cbxSelectShape.Items [cbxSelectShape.SelectedIndex]'를 봅니다. 너 뭐가 보이니? 당신이'int'로 형변환하면'id' 변수는 null이 될 수 없습니다. –

관련 문제