私はデータテーブルに2つの列を持ち、両方がコンボボックス(複数列のドロップダウンリスト)のドロップダウンリストに表示されます。今私はコンボボックスに1つの列を表示したい、もう1つはtexboxに(データバインディングで)表示したい。コードは動作しますが、問題が1つあります - フォームを開くときにcombobox.selectedIndex -1を、テキストボックスを空にしたいコンボボックスは問題ではありませんが、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 .:私が望む出力は、ユーザーがコンボボックスから項目を選択すると、両方の列の値がコンボボックスの&に表示されます。表示されているコードは動作しますが、フォームのロード時にコンボボックスのように空白にすることはできません。
提案がありますか?
TextBoxは名前列にバインドされていません。これは、データテーブルの名前にバインドされています。私はあなたがコンボボックスで選択されている人の誰かの名前でテキストボックスを入力したいと思いますか? – FloatingKiwi
はい、私はそれが欲しいです。しかしTexboxについてはどういう意味ですか?dtb Datasetの列 "Name"にバインドされていますか?私はそのように表示されて参照してください... – LuckyLuke82
私はあなたのコードを試して、それはフィールドにバインドすることを私に本物の驚きthatsです。私の答えを修正させてください – FloatingKiwi