[VB.NET] การใช้งาน MultiColumnComboBox Control ด้วยของฟรีจาก Syncfusion Community
http://www.g2gnet.com/webboard/images/vbnet/syncfusion/multicolumncombobox.pngก็ตามหัวข้อเลยครับ คือเป็น ComboBox แบบหลายหลัก หรือ Multi-Column ซึ่งเสมือนหนึ่งว่าเป็นการดึงตารางข้อมูลมาแสดงผลในตัว MultiColumnComboBox โดยตัวอย่างนี้จะใช้ข้อมูลสมมุติจาก DataTable แล้วให้มันมองเป็น DataView ...
ดาวน์โหลดฟรีชุดติดตั้ง Syncfusion Community (ต้องสมัครสมาชิกเขาก่อนด้วยล่ะครับ) ...
ไฟล์ DLL ที่เป็นพื้นฐานในการใช้งานทั่วไปของ Syncfusion Community รุ่นฟรี ... หากเวอร์ชั่นที่สูงกว่ารุ่นของแอดมิน ต้อง Add Reference เข้ามาใหม่ด้วยครับ
http://www.g2gnet.com/webboard/images/vbnet/syncfusion/syncfusionrefbase.png
มาดูโค้ดต้นฉบับแบบเต็ม ...
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) ได้ที่นี่ ...
แก้ไขครั้งสุดท้ายโดย komenservice เมื่อ 2020-6-9 10:56
ขอบพระคุณครับ อาจารย์
แต่ผม โหลดมาเป็น Ver 18 ครับ รุ่นทดลองใช้ 30 วันครับ
ทดสอบแล้ว ใช้งานได้ครับ แต่ใช้ได้ 30 วันครับ
ขอบพระคุณครับ ขอบคุณครับ
หน้า:
[1]