2013-07-24 64 views
0

對不起,我是vb.net 2010新手。我也是新來的子類。該comobobox被用作查詢。vb.net Combobox重置爲未選定的時候失去焦點當綁定到Objectdatasource

我有一個綁定到bindingSource的comboxbox。問題出在我選擇了我的組合框上的一個項目並失去它的焦點後,它恢復爲空白。爲什麼是這樣?奇怪的。

My tables: 
    tblUsers 
    -FullName 
    -UserName 
    -Password 
    -UserTypeID 

    tblUserType 
    -UserTypeID 
    -UserType (Admin, Supervisor, Encoder) 

    My Class Library: 
    -Users.vb = table encapsulation of tblUsers 
    -UserDB.vb = methods for my tblUsers 

    -UserType.vb = table encapsulation of tblUserType 
    -UserTypeDB.vb = methods for my tblUserType 

    Data Sources: 
    -UserBindingSource = Users.vb Class 
    -UserTypeBindingSource = UserType.vb Class 


Databindings for my UserTypeComboBox: 

    UserTypeComboBox.DataSource = UserTypeBindingSource 
    UserTypeComboBox.DisplayMember = UserType 
    UserTypeComboBox.ValueMember = UserTypeID 
    UserTypeComboBox.SelectedValue = UsersBindingSource - UserTypeID  

My Code Below: 

Public Class frmUsers_AddEdit  

    Private newUser As Users 
    Private usertypeList As List(Of UserType) 

    Private Sub LoadComboboxes() 
     Try 

      usertypeList = UserTypeDB.GetUserTypeList 
      UserTypeComboBox.DataSource = usertypeList 

     Catch ex As Exception 
      MessageBox.Show(ex.Message, ex.GetType.ToString) 
     End Try 

    End Sub 

    Private Sub frmUsers_AddEdit_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

     Me.LoadComboboxes() 
     UsersBindingSource.Add(newUser) 

    End Sub 

end class 

的frmUsers_AddEdit是我使用/編輯的用戶數據添加到數據庫中的表格。我仍然處於加入階段。沒有代碼可供編輯。

Combobox問題:每當我從UserTypeCombobox(例如「編碼器」)中選擇一個項目時,選擇將在失去焦點時恢復爲未選中狀態。 :-(

+0

奇怪我嘗試了BindingSource.suspendBinding和BindingSource.ResumeBinding它似乎解決了這個問題。但編譯後,問題仍然存在。 :-( – user2059064

回答

0

嘗試給它一個false導致驗證值。如果不工作,也許你的組合框DropDownStyle心不是設置爲下拉列表

以下屬性中的代碼添加到您的組合框進取,嘗試

CausesValidation="false" 

或嘗試在你的代碼爲dropdownstyle

ComboBox.DropDownStyle = ComboBoxStyle.DropDownList 
+0

我怎麼那?對不起,我是vb.net的新手。 – user2059064

+0

加入我的回答 –

+0

我試過了Causesvalidation = false。它確實解決了組合框丟失的焦點空白文本屬性,但它也有其他影響。結果是沒有數據保存在數據庫中。:-( – user2059064

0

我想我找到了問題添加此背後,在我User.vb類我有AP ublic屬性「UserType」,在我的UserType.vb類中,我也有相同的名爲「UserType」的公共屬性。這會導致衝突嗎?

我刪除了兩個類並重新開始。在我的UserType.vb類中,我將公共屬性重命名爲Utype。之後,我在添加/編輯表單上重新配置了數據綁定。組合框問題消失了。

重複的公共屬性名稱是組合框丟失焦點問題的原因嗎?我仍然不確定這是否是真正的問題。但我很高興我的組合框現在可以正常工作。

+0

我的錯誤問題依然存在。導致問題的代碼是UserBindingSource.Add(newUser)on form load。:-( – user2059064