【发布时间】:2016-08-16 07:08:03
【问题描述】:
我在数据表中有 2 列,并且都显示在组合框的下拉列表中(多列下拉列表)。现在我想在组合框中显示一列,在 texbox 中显示另一列(带有数据绑定)。代码有效,但有 1 个问题 - 我希望在表单打开时让我的 combobox.selectedIndex -1 和文本框为空。 Combobox 不是问题,但无法清除 Texbox 中的文本。这是我的代码:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim SQL As String = "SELECT Name,Surname from MyTable"
Dim dtb As New DataTable()
dtb.Columns.Add("Name", System.Type.GetType("System.String"))
dtb.Columns.Add("Surname", System.Type.GetType("System.String"))
Using con As OracleConnection = New OracleConnection("Data Source=MyDB;User Id=Lucky;Password=MyPassword;")
Try
OraclePovezava.Open()
Using dad As New OracleDataAdapter(SQL, con)
dad.Fill(dtb)
End Using
Combobox1.DataSource = dtb
Combobox1.DisplayMember = "Surname"
Combobox1.AutoCompleteMode = AutoCompleteMode.Suggest
Combobox1.AutoCompleteSource = AutoCompleteSource.ListItems
con.Close()
Catch ex As Exception
'MessageBox.Show(ex.Message)
Finally
con.Dispose()
End Try
TextBox1.DataBindings.Add("Text", dtb, "Name")
Combobox1.SelectedIndex = -1
End Using
End Sub
如您所见,此代码位于表单的加载事件中。我也尝试过使用 If 语句在 Combobox.SelectedIndexChanged 事件中使用 Textbox 数据绑定,但它不起作用。
P.S.:我想要的输出是当用户从组合框中选择某些项目时,两个列值都显示在 texbox 和组合框中。您看到的代码可以正常工作,但文本框不能像表单加载时的组合框一样为空。
有什么建议吗?
【问题讨论】:
-
您的文本框未绑定到名称列。它绑定到数据表的名称。我想您希望文本框填充组合框中选择的人的名字?
-
是的,我想要那个。但是你对 Texbox 是什么意思 - 它绑定到 dtb 数据集的“名称”列,不是吗?我看到显示为...
-
我刚刚尝试了您的代码,它绑定到该字段让我感到非常惊讶。让我修改我的答案