2014-07-17 2 views
0

방금 ​​데이터 소스 (사전)를 표시하기 위해 ToolstripComboBox를 가져올 수있었습니다.vb.net - ToolstripComboBox에 데이터 바인딩 추가

하지만 이제 SelectedValue 속성에 DataBinding을 추가하고 싶지만 작동하지 않습니다. 그것이 작동하는 일반 콤보를 들어

:/..

내 코드 : tscbb_Test.ComboBox.DataBindings.Add ("SelectedValue", My.Settings, "mySettings에서 설정")

수 누군가 도움?

+1

는 "작동하지 않습니다"라는 결코 적절하다. 일어날 일을 항상 설명하고, 그것이 분명하지 않은 경우 어떻게 그것이 당신의 기대와 다른지 설명하십시오. 오류 메시지가 있으면이를 제공하십시오. – jmcilhinney

+0

죄송합니다. 음 .. 아무 일도 일어나지 않습니다.이 코드는 일반적인 콤보 박스에서는 작동하지만 툴팁 콤보 박스에서는 작동하지 않습니다. 값을 변경하면 시작시 다시 기본값이됩니다. 새 값을 설정에 저장할지 여부를 테스트하는 것을 잊었습니다. 그러나 정상적인 콤보 박스에 대해서도 그 일을 suxx :/.. – mademyday

답변

0

난 그냥이 시도하고 나를 위해 완벽하게 작동 :

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Dim table As New DataTable 

    With table.Columns 
     .Add("ID", GetType(Integer)) 
     .Add("Name", GetType(String)) 
    End With 

    With table.Rows 
     .Add(1, "Peter") 
     .Add(2, "Paul") 
     .Add(3, "Mary") 
     .Add(4, "John") 
    End With 

    Me.BindingSource1.DataSource = table 
    Me.BindingSource2.DataSource = table 

    With Me.ToolStripComboBox1.ComboBox 
     .DisplayMember = "Name" 
     .ValueMember = "ID" 
     .DataSource = Me.BindingSource1 
     .DataBindings.Add("SelectedValue", My.Settings, "ToolStripSelectedValue") 
    End With 

    With Me.ComboBox1 
     .DisplayMember = "Name" 
     .ValueMember = "ID" 
     .DataSource = Me.BindingSource2 
     .DataBindings.Add("SelectedValue", My.Settings, "FormSelectedValue") 
    End With 
End Sub 

내가 프로젝트를 실행할 때마다 ComboBox의 다른 항목을 선택, 프로젝트를 닫고 다시 실행할 수 있습니다 내가 이전에 선택한 항목이었다 다시 선택하면 설정이 저장되어 있어야합니다.

난 그냥 형 Keys 두 가지 설정으로이 코드를 시도하고 예상대로 일 :

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Dim keys = [Enum].GetValues(GetType(Keys)) 

    Me.BindingSource1.DataSource = keys 
    Me.BindingSource2.DataSource = keys 

    With Me.ToolStripComboBox1.ComboBox 
     .DataSource = Me.BindingSource1 
     .DataBindings.Add("SelectedItem", My.Settings, "ToolStripSelection") 
    End With 

    With Me.ComboBox1 
     .DataSource = Me.BindingSource2 
     .DataBindings.Add("SelectedItem", My.Settings, "FormSelection") 
    End With 
End Sub 
+0

미안하지만 형용사가 2 개의 바인딩 소스를 추가하고 toolstripcombobox를 추가하면 나에게 새로운 기능이 생겼다. 어떤 값이라도 바인딩을 테스트 할 수 없습니다. 적어도 나는 Combobox.BindingContext = Me.BindingContext를 돌리면 값을 볼 수있다. 무엇이 잘못 됐는지 모릅니다. – mademyday

+0

롤, 그냥 새로운 프로젝트를 만들었지 만 효과가 있었지만 왜 내 프로젝트 Oo에서 작동하지 않는지 알지 못합니다.? 글쎄, 만약 당신이 더 많은 제안을 가지고, 그들에게 친절하게 될 것이라고;)! 어쨌든 고맙습니다! 추신 : 아마도 Enum에 바인딩되어 있기 때문일 수 있습니까? ToolstripComboBox.ComboBox.DataSource = System.Enum.GetValues ​​(GetType을 (EnumName)) – mademyday

+0

내 코드 지금 (:(작동하지 않습니다) (VB-코드 태그 만드는 방법을 알고하지 마십시오 /)를 Me.BindingSource1 .DataSource = System.Enum.GetValues ​​(GetType을 (키)) tscb_Keys.ComboBox.BindingContext = Me.BindingContext tscb_Keys.ComboBox.DataSource = Me.BindingSource1 tscb_Keys.ComboBox.DataBindings.Add ("SelectedValue"My.Settings , "SettingInMySettingsAs Integer?") – mademyday

관련 문제