|
ก็ตามหัวข้อเลยครับ คือเป็น ComboBox แบบหลายหลัก หรือ Multi-Column ซึ่งเสมือนหนึ่งว่าเป็นการดึงตารางข้อมูลมาแสดงผลในตัว MultiColumnComboBox โดยตัวอย่างนี้จะใช้ข้อมูลสมมุติจาก DataTable แล้วให้มันมองเป็น DataView ...
ดาวน์โหลดฟรีชุดติดตั้ง Syncfusion Community (ต้องสมัครสมาชิกเขาก่อนด้วยล่ะครับ) ...
ไฟล์ DLL ที่เป็นพื้นฐานในการใช้งานทั่วไปของ Syncfusion Community รุ่นฟรี ... หากเวอร์ชั่นที่สูงกว่ารุ่นของแอดมิน ต้อง Add Reference เข้ามาใหม่ด้วยครับ
มาดูโค้ดต้นฉบับแบบเต็ม ...
- Imports Syncfusion.Windows.Forms.Tools
- Public Class frmCBMulticol
- Private Sub frmCBMulticol_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- Call ComboBoxDataBinding()
- End Sub
- Sub ComboBoxDataBinding()
- '// Setup MultiColumnComboBox
- With MultiColumnComboBox1
- .MultiColumn = True
- .ShowColumnHeader = True
- .AlphaBlendSelectionColor = Color.LightBlue
- .DropDownWidth = 620
- .DropDownStyle = ComboBoxStyle.DropDownList
- .Style = Syncfusion.Windows.Forms.VisualStyle.Office2007
- .Office2007ColorTheme = Syncfusion.Windows.Forms.Office2007Theme.Black
- End With
- '//
- Dim dt As New Data.DataTable
- ' / เพิ่มหลัก (Columns) หรือฟิลด์ จำนวน 6 หลัก
- With dt
- .Columns.Add("EmployeePK", GetType(Integer)) '<-- Index = 0
- .Columns.Add("EmployeeID", GetType(String)) '<-- Index = 1
- .Columns.Add("EmployeeName", GetType(String)) '<-- Index = 2
- .Columns.Add("Position", GetType(String)) '<-- Index = 3
- .Columns.Add("Department", GetType(String)) '<-- Index = 4
- .Columns.Add("HireDate", GetType(Date)) '<-- Index = 5
- End With
- ' / เพิ่มรายการข้อมูล (Record) เรียงตามลำดับฟิลด์
- With dt
- .Rows.Add("1", "EMP00001", "นายทองก้อน ทับทิมกรอบ", "Managing Director", "Management", "01/01/2555")
- .Rows.Add("2", "EMP00002", "นายบุญห่อ พ่อรวย", "ช่างซ่อมบำรุง", "Technical", "01/06/2555")
- .Rows.Add("3", "EMP00003", "นางสาวกุ๊กกิ๊ก น่ารักที่สุด", "เลขา", "Management", "25/02/2555")
- .Rows.Add("4", "EMP00004", "นางบัวผัน ฝันเฟื่อง", "หัวหน้าบัญชี", "บัญชี", "11/11/2555")
- .Rows.Add("5", "EMP00005", "หนูมาลี มีลูกแมวเหมียว", "ธุรการ", "ธุรการ", "13/04/2555")
- End With
- Dim view As DataView = New DataView(dt)
- ' DATASOURCE is DATAVIEW
- With MultiColumnComboBox1
- .DataSource = view
- .DisplayMember = "EmployeeName"
- .ValueMember = "EmployeePK"
- End With
- End Sub
- Private Sub MultiColumnComboBox1_SelectedValueChanged(sender As Object, e As System.EventArgs) Handles MultiColumnComboBox1.SelectedValueChanged
- Dim c As ComboBoxBaseDataBound = CType(MultiColumnComboBox1, ComboBoxBaseDataBound)
- If Not (c.SelectedIndex = -1) Then
- Dim drv As DataRowView = CType(c.Items(c.SelectedIndex), DataRowView)
- '// อ่านค่า EmployeePK หากต้องการใช้ EmployeeID ก็เปลี่ยน 0 ให้เป็น 1 คือเรียงตาม Index ของ Column ใน DataTable
- c.Text = drv.Item(0).ToString()
- End If
- End Sub
- End Class
คัดลอกไปที่คลิปบอร์ด
ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) ได้ที่นี่ ...
|
ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง
คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน
x
|