VB.net链接两个自动完成文本框

时间:2017-01-25 12:34:19

标签: .net vb.net winforms autocomplete textbox

我有两个自动填充文本框。一个是客户名称,另一个是客户代码。 我已使用以下代码为客户和客户代码文本框设置了自动填充功能:

客户自动填充

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 个答案:

答案 0 :(得分:1)

如果您使用ComboBox代替TextBox,那么只需要一些简单的设置:

  1. 添加2个组合框,一个用于Code,另一个用于Name
  2. 将两个组合框的DataSource设置为相同的列表。
  3. DisplayMember设置为Code属性,将另一个设置为Name属性。
  4. AutoCompleteSource的{​​{1}}设置为ListItems
  5. AutoCompleteMode的{​​{1}}设置为Suggest
  6. 这样,每个ComboBox将像列表的索引一样,当您从其中一个中选择一个项目时,另一个将选择相同的项目。一个显示Code,另一个显示Name