2013-02-01 2 views
2

나는이 해답을 찾고있다. 여기에 체크 : How to set a combobox value하지만 그것이 나에게 맞으면 잘 모르겠다. VB.Net, VS2012를 사용하고 있으며 프로그래밍 방식으로 데이터 바인딩 된 콤보 상자의 값 멤버를 설정해야합니다.combobox의 값 멤버를 프로그래밍 방식으로 설정하십시오.

내 코드는 지금 (이 컨트롤 값의 무리를 할당 루프 내에서이다) 다음과 같습니다

cboCountry.SelectedValue = row.Item("CCCOUNTRY").ToString 

이가 선택한 값을 할당하지 않습니다. 나는 또한 시도했다 :

cboCountry.SelectedItem = cboCountry.FindString(row.Item("CCCOUNTRY").ToString) 

그러나 이것도 작동하지 않습니다. 이 예를 들어 :

  1. 나는 하나의 콤보
  2. 그것은 두 개의 값이 바인딩이는
  3. 나는 그것을 할당있어 행 항목 중 하나입니다 valuemember 특성, "미국"및 "CA"의에 그 값들.

다시 말해서 프로그래밍 방식으로 selectedvalue를 설정해야합니다. 어떤 도움을 주셔서 감사합니다!

답변

4

당신은 당신의 두 번째 시도에 가까이있어 - selectedIndex의와의 selectedItem을 대체 :

cboCountry.SelectedIndex = cboCountry.FindString(row.Item("CCCOUNTRY").ToString) 
2

당신은 사용해야합니다

cboCountry.Items.FindByText(row.Item("CCCOUNTRY").ToString()).Selected = True 
1

이 vb.net의 VS2010 오늘 나를 위해 일한

cboCountry.SelectedIndex = cboCountry.FindString ("CCCOUNTRY"). ToString

이름 나를 위해 컨트롤과 값의 차이가 있었다, 그러나 나는이 프로젝트가 다른 이름을 가지고 물론 VB.NET VS2010

cboCountry.SelectedIndex = cboCountry.FindString("CCCOUNTRY").ToString 

와 프로젝트에 나를 위해 일한 이전 사용자의 게시물 ...

0

계속 및 값

0

같은 문제가 발생하여 그물에서 대답을 찾지 못했습니다. 분명히 Microsoft는 아직이 문제를 해결하지 않았습니다. VS2010 WinForms 응용 프로그램 (Windows 7)에서 VB를 사용하고 있습니다. 나는 마침내 주위에 작업을 코딩하기로 결정, 나는 콤보 상자의 선택된 값을 미리 설정하려고했다 어디든지 나는 다음과 같이 변경했다 : 그런 다음

' my_cbx.SelectedValue = data_row.value ' doesn't work! 
PresetSelectedValue(my_cbx, data_row.value) 

을, 나는 위의 변경에 의해 호출하려면 다음 서브 루틴을 추가 :

Public Sub PresetSelectedValue(ByRef ComboBox As ComboBox, ByVal value As Object) 
    Dim item_ndx As Integer 

    If ComboBox Is Nothing Then 
     ' throw exception? 
     Exit Sub 
    End If 
    With ComboBox 
     .Tag = "PresetSelectedValue" 
     For item_ndx = 0 To .Items.Count - 1 
      .SelectedIndex = item_ndx 
      If .SelectedValue = value Then 
       Exit For 
      End If 
     Next 
     If item_ndx >= .Items.Count Then 
      .SelectedIndex = -1 
     End If 
     .Tag = "" 
    End With 
End Sub 

마지막 내 ComboBox.SelectedValueChanged 이벤트 (사용자가 위 내 서브 루틴 for 루프의 각 반복에 실행되는 의 값을 변경하는 경우는 통상 이벤트 로직을 방지)하기 위해 다음과 같은 코드를 추가

If my_cbx.Tag = "PresetSelectedValue" Then 
    Exit Sub 
End If 
관련 문제