2017-01-25 22 views
1

我有兩個自動完成文本框。一個是客戶名稱,另一個是客戶代碼。 我已經使用這個代碼設置自動完成,爲客戶和客戶代碼文本框:VB.net鏈接兩個自動完成文本框

客戶自動完成

Dim ds As DataSet = obtainCustomerData() 
Dim i As Integer 

For i = 0 To ds.Tables(0).Rows.Count - 1 
    CustName.Add(ds.Tables(0).Rows(i)("name").ToString().ToUpper) 

Next 

CustomerNameTB.AutoCompleteSource = AutoCompleteSource.CustomSource 
CustomerNameTB.AutoCompleteCustomSource = CustName 
CustomerNameTB.AutoCompleteMode = AutoCompleteMode.Suggest 

客戶代碼自動完成

Dim ds As DataSet = obtainCustomerCodeData() 
Dim i As Integer 

For i = 0 To ds.Tables(0).Rows.Count - 1 
    CustCode.Add(ds.Tables(0).Rows(i)("code").ToString().ToUpper) 

Next 

CodeTB.AutoCompleteSource = AutoCompleteSource.CustomSource 
CodeTB.AutoCompleteCustomSource = CustCode 
CodeTB.AutoCompleteMode = AutoCompleteMode.Suggest 

現在我想結束用戶開始在任何一個文本框中輸入內容,但是如果他們選擇了一個基於名稱的客戶,我希望它能夠通過另一個代碼實現文本框,如果他們開始輸入代碼,我希望它自動填充名稱。

我該怎麼辦?

回答

1

如果您使用的ComboBox代替TextBox這將是隻是一些簡單的設置:

  1. 加2組合框,一個用於Code,另一個用於Name
  2. 將兩個組合框的DataSource設置爲相同的列表。
  3. 設置DisplayMember一個到Code財產和另一個Name財產。
  4. AutoCompleteSource設爲ListItems
  5. AutoCompleteMode設爲Suggest

這樣,每個ComboBox會像對列表中的索引,當你從他們的一個選擇項目,其他人會選擇相同的項目。一個顯示Code,另一個顯示Name