通过Textbox输入VB.NET更改Combobox

时间:2012-02-19 18:31:13

标签: vb.net binding combobox textbox

嗨我需要一些帮助...在我在文本框中输入代表组合框值的代码之后,如何更改ComboBox的显示成员?

例如

代码:02-001组合框:提供者X

如果我更改代码,提供者组合框必须更改,如果我更改提供者组合框代码应该更改!..我还没有找到任何帮助..继承人我记得的小代码

if e.keychar = chr(13) Then
    combobox.valuemember = textbox.text
    combobox.displaymember = me.stockdataset.selectprovider(@textbox.text)
end if

此代码更改了组合框显示成员,但是如果我通过单击更改comobox,则文本框上的代码不会更改为相应的代码... ?? 请帮忙

....组合框绑定到提供者表....

2 个答案:

答案 0 :(得分:0)

当用户按enter键时,更改组合框的selectedItem。但之前,检查它确实在提供者列表中......

在组合框的SelectionChanged处理程序中

,将文本框内容设置为组合框的值。

每次使用属性更改时更好,并将textbox和combobox的selectedItem绑定到这些属性。

答案 1 :(得分:0)

这是错误的绑定方式....这是你如何做到的: 我通过一个带有组合框和文本框的简单形式模拟你的案例 和一个包含2列“代码”和“描述”的数据表

此处的代码(如果您愿意,请不要忘记将我的答案标记为正确):

Public Class Form1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try

            Me.KeyPreview = True'To Enable the Key events : KeyDown, KeyPress and KeyUp

            Dim dt As New DataTable("T")
            dt.Columns.Add(New DataColumn("Code"))
            dt.Columns.Add(New DataColumn("Description"))
            For i = 1 To 10
                Dim r As DataRow = dt.NewRow
                r("Code") = "Code" + CStr(i)
                r("Description") = "Desc" + CStr(i)
                dt.Rows.Add(r)
            Next

            With ComboBox1
                .ValueMember = "Code" ' This is case sensitive 
                .DisplayMember = "Description" ' This is case sensitive 
                .DataSource = dt
            End With

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

    Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click
        SetComoboValue()
    End Sub

    Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyCode = Keys.Enter Then SetComoboValue()
    End Sub

    Private Sub SetComoboValue()
        Try
            If Not String.IsNullOrEmpty(TextBox1.Text) Then
                ComboBox1.SelectedValue = TextBox1.Text
            End If
        Catch ex As Exception
            MsgBox("Ooops, Invalid code !!!")
        End Try
    End Sub
End Class

如此当您输入“Code3”并点击Enter或单击TextBox1时,ComboBox1将显示“Desc3”