2012-12-10 45 views
1

我在我的Windows中的數據綁定組合框形成我填充它通過一個函數deptload()在表格LOAD現在組合框項目是固定

public void DeptcomboLoad() 
     { 
      DataTable dt = depttrans.getDeptName(); 
      Cmb_Department.DataSource = dt; 
      Cmb_Department.DisplayMember = "DepartmentName"; //CHAR 
      Cmb_Department.ValueMember = "DepartmentPK"; //INT 
     } 

當一個部門的員工(比如佔DepartmentName的=」帳戶「,DepartmentPK = 23)登錄我想在組合框的文本被選爲‘ ,當我去得到ComboBox的選定值我應該得到23

我試圖acounts’

Cmb_Department.selectedtext="Accounts" 
Cmb_Department.Text="Accounts" 

,但它不是給選定值

誰能給個建議

回答

1

要改變,你可以使用 SelectedItem財產或SelectedIndex組合框的設定值。 索引必須是數據源中的精確數字,並且項必須是數據源中的精確對象

2

,而不是試圖把一個值組合框,試圖讓SelectedItem這樣的:

string txt= Cmb_Department.SelectedItem.Text 

或只是:

string txt= Cmb_Department.SelectedText 
1

你可以得到它通過發出這樣的選擇合適的項目:

Cmb_Department.SelectedValue = 23; 

其中23來自於其他一些變量,也許另一個對象,也許從一個局部變量,在任何情況下工作。

現在,讓所選擇的值,可以使用以下語句:

var val = Cmb_Department.SelectedValue; 

獲取所選文本(這將是與該值相關的文本):

var text = ((DataRow)Cmb_Department.SelectedItem)["DepartmentName"]; 

的我前面提到的原因是因爲SelectedText屬性是易失性的,並且Text屬性並不總是基於DropDownStyle的設置方式工作。

然而,有些可能會爭辯,以獲得相同上述可以發出這樣的說法:

var text = Cmb_Department.Text;