嗨我需要一些帮助...在我在文本框中输入代表组合框值的代码之后,如何更改ComboBox的显示成员?
例如
代码:02-001组合框:提供者X
如果我更改代码,提供者组合框必须更改,如果我更改提供者组合框代码应该更改!..我还没有找到任何帮助..继承人我记得的小代码
if e.keychar = chr(13) Then
combobox.valuemember = textbox.text
combobox.displaymember = me.stockdataset.selectprovider(@textbox.text)
end if
此代码更改了组合框显示成员,但是如果我通过单击更改comobox,则文本框上的代码不会更改为相应的代码... ?? 请帮忙
....组合框绑定到提供者表....
答案 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”