ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 806|ตอบกลับ: 0

[VB.NET] การทำ AutoComplete ให้กับ TextBox Control ด้วย Syncfusion

[คัดลอกลิงก์]

308

กระทู้

498

โพสต์

5971

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
5971



โค้ดตัวอย่าง VB.NET ของการทำ AutoComplete ให้กับ TextBox Control ด้วย Syncfusion ซึ่งมีข้อแตกต่างจาก AutoComplete ของทางไมโครซอฟท์ ทั้งสามารถแสดงผลได้มากกว่า 1 Column ทำให้เราสามารถกดคีย์ค้นหาได้ทั้งรหัสสินค้า หรือชื่อสินค้าพร้อมๆกัน (Mode MultiSuggestExtended) โดยที่ไม่ต้องมาเขียนโค้ดให้เลือกเอาอย่างใดอย่างหนึ่ง อีกทั้งของ Syncfusion มีโค้ดที่ง่ายกว่าของทางไมโครซอฟท์มาก ... แอดมินได้ทำตัวอย่างเอาไว้ให้ 2 แบบ คือแบบใช้ข้อมูลสมมุติจาก DataTable และมีการดึงข้อมูลจริงจากไฟล์ MS Access DataBase พร้อมกับทำ AutoComplete ทั้งแบบ Design Time และ Run Time เอาไว้ให้ได้รับชมกันครับ

มาดูโค้ดฉบับเต็มกันเถอะ ...
  1. Imports System.Data.OleDb
  2. Imports Syncfusion.Windows.Forms.Tools

  3. Public Class frmAutoComplete

  4.     Private Conn As New OleDbConnection
  5.     Dim autoComplete As AutoComplete = New AutoComplete

  6.     ' / --------------------------------------------------------------------------------
  7.     Private Sub frmAutoComplete_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  8.         ' / --------------------------------------------------------------------------------
  9.         '// AutoComplete with sample DataTable.
  10.         AutoComplete1.SetAutoComplete(TextBox1, AutoCompleteModes.Both) '// Mode Append + Suggest.
  11.         Me.AutoComplete1.DataSource = MyDataTable()

  12.         '// AutoComplete with DataTable from DataBase and create it with code.
  13.         Call ConnectDB()
  14.         With autoComplete
  15.             .ParentForm = Me    '// Must have for AutoComplete @Run time.
  16.             .ShowColumnHeader = True
  17.             .ShowCloseButton = True
  18.             .ShowGripper = True
  19.             '.AdjustHeightToItemCount = False
  20.             '.AutoPersistentDropDownSize = True
  21.             '.Style = AutoCompleteStyle.Metro
  22.         End With
  23.         autoComplete.SetAutoComplete(TextBox2, AutoCompleteModes.MultiSuggestExtended)
  24.         autoComplete.DataSource = GetDataTable()
  25.     End Sub

  26.     ' / --------------------------------------------------------------------------------
  27.     '// Create Sample DataTable.
  28.     ' / --------------------------------------------------------------------------------
  29.     Function MyDataTable() As DataTable
  30.         '// Create DataTable
  31.         Dim dt As DataTable = New DataTable()
  32.         '// Add Columns
  33.         With dt.Columns
  34.             .Add("Country")
  35.             .Add("Capital")
  36.         End With
  37.         '// Add Rows
  38.         With dt.Rows
  39.             .Add(New String() {"Thailand", "Bangkok"})
  40.             .Add(New String() {"United Kingdom", "London"})
  41.             .Add(New String() {"USA", "Washington, D.C."})
  42.             .Add(New String() {"Brazil", "Brasilia"})
  43.             .Add(New String() {"France", "Paris"})
  44.             .Add(New String() {"Russia", "Moscow"})
  45.             .Add(New String() {"India", "Delhi"})
  46.             .Add(New String() {"Japan", "Tokyo"})
  47.             .Add(New String() {"Taiwan", "Taipei"})
  48.             .Add(New String() {"Croatia", "Zagreb"})
  49.             .Add(New String() {"Brunei", "Bandar Seri Begawan"})
  50.         End With
  51.         '// Return DataTable
  52.         Return dt
  53.     End Function

  54.     ' / --------------------------------------------------------------------------------
  55.     '// DataTable from DataBase.
  56.     ' / --------------------------------------------------------------------------------
  57.     Function GetDataTable() As DataTable
  58.         Dim dt As New DataTable
  59.         Dim strSQL As String = String.Empty
  60.         '//
  61.         strSQL = _
  62.             " SELECT Country, Capital " & _
  63.             " FROM(Table1) " & _
  64.             " ORDER BY Country, Capital "
  65.         If Conn.State = ConnectionState.Closed Then Conn.Open()
  66.         Using DA As New OleDbDataAdapter(strSQL, Conn)
  67.             DA.Fill(dt)
  68.         End Using
  69.         '// Return DataTable
  70.         Return dt
  71.     End Function

  72.     Public Function ConnectDB() As Boolean
  73.         Dim strConn As String = _
  74.             " Provider = Microsoft.ACE.OLEDB.12.0; " & _
  75.             " Data Source = " & MyPath(Application.StartupPath) & "data\SampleDB.accdb"
  76.         Try
  77.             Conn = New OleDb.OleDbConnection(strConn)
  78.             Conn.Open()
  79.             '// Return
  80.             Return True
  81.         Catch ex As Exception
  82.             MessageBox.Show(ex.Message)
  83.             Conn = Nothing
  84.             Return False
  85.         End Try
  86.     End Function

  87.     ' / --------------------------------------------------------------------------------
  88.     ' / Get my project path
  89.     ' / AppPath = C:\My Project\bin\debug
  90.     ' / Replace "\bin\debug" with ""
  91.     ' / Return : C:\My Project\
  92.     Function MyPath(ByVal AppPath As String) As String
  93.         '/ MessageBox.Show(AppPath);
  94.         AppPath = AppPath.ToLower()
  95.         '/ Return Value
  96.         MyPath = AppPath.Replace("\bin\debug", "").Replace("\bin\release", "").Replace("\bin\x86\debug", "").Replace("\bin\x86\release", "")
  97.         '// If not found folder then put the \ (BackSlash - ASCII Code = 92) at the end.
  98.         If Microsoft.VisualBasic.Right(MyPath, 1) <> Chr(92) Then MyPath = MyPath & Chr(92)
  99.     End Function

  100.     Private Sub frmAutoComplete_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
  101.         Me.Dispose()
  102.         GC.SuppressFinalize(Me)
  103.         End
  104.     End Sub
  105. End Class
คัดลอกไปที่คลิปบอร์ด

ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) ได้จากที่นี่ ...

ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-3-28 21:56 , Processed in 0.105907 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้