데이터 테이블에 2 개의 열이 있으며 둘 다 콤보 상자 (여러 열 드롭 다운 목록)의 드롭 다운 목록에 표시됩니다. 이제는 하나의 열을 콤보 박스에 표시하고 다른 열은 texbox에 표시하려고합니다 (데이터 바인딩 사용). 코드는 작동하지만 1 문제 - 폼이 열리고 텍스트 상자가 비어있을 때 combobox.selectedIndex -1을 갖기를 원합니다. 콤보 박스는 문제가 아니지만 Texbox는 텍스트를 지울 수 없습니다. 여기 내 코드는 다음과 같습니다.combobox 항목에 텍스트 상자를 바인딩
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 .: 원하는 출력은 사용자가 콤보 박스에서 일부 항목을 선택하면 두 열 값 모두가 콤보 상자 &에 표시됩니다. 표시되는 코드는 작동하지만 텍스트 상자는 양식로드시 콤보 상자처럼 비워 둘 수 없습니다.
제안 사항?
텍스트 상자가 이름 열에 바인딩되지 않았습니다. 그것은 당신의 데이터 테이블의 이름에 묶여있다. 나는 당신이 combobox에서 선택된 누구의 이름으로 텍스트 상자가 채워지 길 원합니까? – FloatingKiwi
네, 그걸 원합니다. 그러나 Texbox에 대한 의미는 무엇입니까? dtb Dataset의 "Name"열에 바인딩되어 있습니까? 나는 그걸로 표시를 참조하십시오 ... – LuckyLuke82
난 그냥 당신의 코드를 시도하고 그게 필드에 바인딩되어 그게 나에게 진정한 놀라움 이잖아. 내 대답을 수정하자 – FloatingKiwi