DataTable의 콤보 상자에 대해 여러 열 드롭 다운 목록을 만들었으므로 이제 두 열을 함께 표시하려고합니다. 지금까지 단 하나의 열만 표시됩니다 (DisplayMember 속성 사용). 따라서 기본적으로 두 열을 모두 콤보 상자에 표시하여 자동 완성을 원합니다. 나는 두 번째 열을 콤보 상자 옆의 텍스트 상자에 표시하는 것에 만족할 것이지만, 선택한 인덱스가 변경되고 값이 변경되면 자동 완성으로 작동해야합니다. 두 Datable 값 (Name & 성)이 함께 다른 DB 테이블에 추가되고 사용자가 같은 위치에서 두 값을 모두 볼 수 있기 때문에 필요합니다.Combobox - 2 개의 Datatable 열 표시
편집 : 어떤 제안
Private Sub Combobox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles Combobox1.DrawItem
e.DrawBackground()
Dim drv As DataRowView = CType(Combobox1.Items(e.Index), DataRowView)
Dim id As String = drv("Name").ToString()
Dim name As String = drv("Surname").ToString()
Dim r1 As Rectangle = e.Bounds
r1.Width = r1.Width/2
Using sb As SolidBrush = New SolidBrush(e.ForeColor)
e.Graphics.DrawString(id, e.Font, sb, r1)
End Using
Using p As Pen = New Pen(Color.AliceBlue)
e.Graphics.DrawLine(p, r1.Right, 0, r1.Right, r1.Bottom)
End Using
Dim r2 As Rectangle = e.Bounds
r2.X = e.Bounds.Width/2
r2.Width = r2.Width/2
Using sb As SolidBrush = New SolidBrush(e.ForeColor)
e.Graphics.DrawString(name, e.Font, sb, r2)
End Using
End Sub
:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim SQL As String = "SELECT ID,Name ||' ' || Surname as FullName 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
con.Open()
Using dad As New OracleDataAdapter(SQL, con)
dad.Fill(dtb)
End Using
Combobox1.DataSource = dtb
Combobox1.DisplayMember = "FullName"
Combobox1.ValueMember= "ID"
con.Close()
Catch ex As Exception
'MessageBox.Show(ex.Message)
Finally
con.Dispose()
End Try
End Using
End Sub
그리고 선 그리기 콤보 상자의 열 사이? 미리 감사드립니다 !!
나는 이것을 사용하지 않았지만 어제 언급했다. http://www.codeproject.com/Articles/8619/Flat-MultiColumn-Combobox-with-Autocomplete – FloatingKiwi
나는 이것을 allready에서 테스트 했으므로 제대로 작동하지 않는다. . 그 옆에, 내 솔루션은 잘 작동, 난 그냥 두 컬럼에 대한 자동 완성 싶어요. 내 이전 스레드 : http://stackoverflow.com/questions/38868261/flat-multi-column-combobox-filling-columns-with-db-tables – LuckyLuke82
하하, 네 그것은 그것을 게시했다. 그들이 도서관에서 자동 완성을 시도한 방법을 보았습니까? – FloatingKiwi