我在數據表中有2列,並且都顯示在組合框(多列下拉列表)的下拉列表中。現在我想在combobox中顯示一列,在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 &組合框中。代碼就像你看到的那樣,但是文本框不能像表單加載時的組合框那樣空白。
有什麼建議嗎?
您的文本框沒有綁定到名稱列。它綁定到數據表的名稱。我猜想你想要在組合框中選擇誰的名字來填充文本框? – FloatingKiwi
是的,我想要。但是,你對Texbox意味着什麼 - 它必然會出現在dtb Dataset的「Name」列中,不是嗎?我看到顯示爲... – LuckyLuke82
我只是試過你的代碼,這對我來說真的令人驚訝,它綁定到該字段。讓我修改我的答案 – FloatingKiwi