หน้าแรก อุปกรณ์ที่ประกอบเป็นเครื่องคอมพิวเตอร์ เกาเหลาเทคนิคการใช้ HTML วิธีทำสร้าง Shortcut บน Desktop ปัญหาใหญ่ของ Data transfer
รวบรวมฟังก์ชั่นเกี่ยวกับLISTBOX
ListBox เป็นคอนโทรลพื้นฐานที่คุณจะพบในโปรแกรมได้ทั่วๆไป ดังนั้นผมจึงได้รวบรวมฟังก์ชั่นการใช้งานของ ListBox พร้อมทั้งตัวอย่างการใช้งานให้ไปศึกษาอีก สำหรับในหน้านี้จะอธิบายเฉพาะการใช้งานฟังก์ชั่นต่างๆ ส่วนตัว Source Code ท่านต้อง Download ในหน้าโปรแกรมแจกฟรี ฟังก์ชั่นต่างๆที่จัดทำ ท่านสามารถนำไปใช้งานได้เลยหรืออาจจะไปปรับปรุงเพิ่มตามแบบฉบับของตัวเองก็ไม่มีใครว่า
สำหรับฟังก์ชั่นต่างๆผมจะอธิบายเป็นข้อๆดังนี้1. FillFilesList
ฟังก์ชั่นนี้ใช้ในการอ่านชื่อแฟ้มต่างๆลงใน ListBox โดยมีรูปแบบการใช้ดังนี้
ท่านสามารถนำไปใช้อ่านค่า Drive, Folder ก็ได้
FillFilsList(lst As ListBox, fileSpec as String)
- lst คือ ListBox ที่ส่งเข้ามา
- fileSpec คือ Path และ Wildcard เช่น C:\Windows\*.DLL" เป็นต้น
ตัวอย่าง:
FillFilesList(List1, "C:\DATA\*.MDB") คืออ่านแฟ้มนามสกุล *.MDB ลงใน ListBox
2. AddList
ใช้เพิ่มรายการลงใน ListBox บางท่านอาจสงสัยว่าสร้างทำไมตัวนี้ เพราะว่าใช้ AddItem ก็ง่ายอยู่แล้ว แต่สำหรับฟังก์ชั่นนี้สามารถตรวจสอบค่าซ้ำด้วย ดังนี้
AddList(lst As ListBox, itm as String, Optional pMode)
- lst คือ ListBox ที่ส่งเข้ามา
- itm คือ Item ที่จะ Add เข้าไป
- สำหรับ pMode ถ้าไม่ส่งมา คือ AddItem ธรรมดา ถ้าส่ง Y มาจะตรวจสอบค่าซ้ำด้วย
ตัวอย่าง
AddList List1, "รายการที่ 1 "
AddList List1, "รายการที่ 1 ", "Y" '// ให้ตรวจสอบค่าซ้ำด้วย
3. RemoveList
ใช้ลบรายการ Item ออกจาก ListBox ดังมีรูปแบบดังนี้
RemoveList(lst As ListBox, itm As String, Optional pMode)
- lst คือ ListBox ที่ส่งเข้ามา
- itm คือ Item ที่จะRemove ออก
- สำหรับ pMode ถ้าไม่ส่งมาจะลบรายการเดียว ถ้าส่ง ALL จะลบทุกรายการซ้ำ
ตัวอย่าง
RemoveList Lis1, "รายการที่ 1 "
RemoveList Lis1, "รายการที่ 1 ", "ALL" '// ลบรายการที่ 1 ทิ้งทั้งหมด
4 RemoveListIndex
ใช้ลบรายการใน ListBox โดยระบบ ListIndex
Function RemoveListIndex(lst As ListBox, iListIndex As Long) As Long
- lst คือ ListBox ที่ส่งเข้ามา
- iListIndex คือ ListIndex ที่ต้องการจะลบ
เมื่อลบไปแล้วจะส่งค่า ListIndex ลำดับถัดไป
มีรูปแบบการใช้ 2 แบบดังนี้
4.1 List1.ListIndex = RemoveListIndex (List1, List1.ListIndex)
แบบแรกจะเหมาะกับ ListBox ไม่ใช่แบบ Multiselect
4.2 i = List1.ListIndex
RemoveListIndex List1, i '// ส่งค่า ListIndex ตัวถัดไป
If i>= 0 Then
List1.ListIndex = i
List1.Selected(i) = True
End If
แบบสองเหมาะกับ ListBox แบบ Multiselect
.
5. RemoveDupList
ใช้ลบรายการที่ซ้ำออกจาก ListBox
Function RemoveDupList(lst As ListBox) As String
- lst คือ ListBox ที่ส่งเข้ามา
ถ้าไม่มีรายการซ้ำจะส่งค่า "-1" กลับไป
ถ้ามีรายการซ้ำ จะส่งค่ารายการซ้ำกลับไป
ตัวอย่าง
sText = RemoveDupList(List1)
6. CopyList
ใช้คัดลอก, ย้าย รายการจาก ListBox1 ไปยัง ListBox อื่น
CopyList(lstFrom As ListBox, lstTo As ListBox, Optional pMode)
- lstFrom คือ ListBox ต้นฉบับ
- lstTo คือ ListBox ปลายทาง
- pMode มีดังนี้คือ
"" (ค่าว่าง) คือคัดลอกเฉพาะรายการที่เลือก
"-" (ลบ) คือ ย้ายเฉพาะรายการที่เลือก
"ALL" คือ คัดลอกทุกรายการ
"-ALL" คือ ย้ายทุกรายการ
ตัวอย่าง
CALL CopyList(List1, List2, "") '// คัดลอกรายการที่เลือก
CALL CopyList(List1, List2, "-") '// ย้ายรายการที่เลือก
CALL CopyList(List1, List2, "ALL") '// คัดลอกทุกรายการ
CALL CopyList(List1, List2, "-ALL") '// ย้ายทุกรายการ
7. FindList
ใช้ค้นหารายการใน ListBox หาแบบตามลำดับ
Function FindList(lst As ListBox, txt As String, iListIndex As Long) As String
- lst คือ ListBox ที่ส่งเข้ามา
- txt คือ รายการที่ค้นหา
- iListIndex คือ ค่า ListIndex ที่พบจะถูกส่งกลับ
ถ้าหากค้นหาพบ จะส่งรายการกลับ ถ้าไม่พบจะส่งค่า "-1" กลับ
ตัวอย่าง
ค้นหาค่าจาก Text1
sText = FindList(List1, Text1, i)
If i >= 0 Then
List1.ListIndex = i
End If
8. SearchList
ใช้ค้นหารายการใน ListBox ใน ListBox จะต้องเรียงลำดับก่อน การค้นหาจะค้นหาตามความยาวของ itm ที่ส่งค่าเข้าไป อย่าลืมนะครับถ้าจะใช้ SerachList ต้องเรียงลำดับข้อมูลใน List โดยกำหนดที่ Properties Sort ของ ListBox
Function SearchList(lst As ListBox, txt As String, iListIndex As Long) As String
- lst คือ ListBox ที่ส่งเข้ามา
- txt คือ รายการที่ค้นหา
- iListIndex คือ ค่า ListIndex ที่พบจะถูกส่งกลับ
ถ้าหากค้นหาพบ จะส่งรายการกลับ ถ้าไม่พบจะส่งค่า "-1" กลับ
ตัวอย่าง
ค้นหาค่าจาก Text1
sText = SerachList(List1, Text1, i)
If i >= 0 Then
List1.ListIndex = i
End If
9. SearchListAPI
ใช้ค้นหารายการใน ListBox ใน ListBox การค้นหาจะค้นหาตามความยาวของ itm ที่ส่งค่าเข้าไป โดยใช้ฟังก์ชั่น API ซึ่งจะเร็วกว่าหาแบบตามลำดับ
Function SearchListAPI(lst As ListBox, txt As String, iListIndex As Long) As String
- lst คือ ListBox ที่ส่งเข้ามา
- txt คือ รายการที่ค้นหา
- iListIndex คือ ค่า ListIndex ที่พบจะถูกส่งกลับ
ถ้าหากค้นหาพบ จะส่งรายการกลับ ถ้าไม่พบจะส่งค่า "-1" กลับ
ตัวอย่าง
ค้นหาค่าจาก Text1
sText = SerachListAPI(List1, Text1, i)
If i >= 0 Then
List1.ListIndex = i
End If
10. ClearListAPI
ใช้สำหรับล้างค่าใน ListBox ทั้งหมดโดยใช้ API เข้ามาช่วยเพื่อความเร็ว
ClearListAPI(lst As ListBox)
ตัวอย่าง
ClearListAPI List1
11. StringToList
ใช้ส่งค่า Item ในรูปของ String ที่ขั้นด้วย , หรืออื่นๆที่กำหนด เข้าใน ListBox
StringToList(lst As ListBox, itms As String, Optional pDelimited)
- lst คือ ListBox ที่ส่งเข้ามา
- itms คือ ค่า String ของ Item ที่คั่นด้วย , หรืออื่นๆ
- pDelimited ถ้าไม่ส่งมา จะใช้ , เป็นตัวคั่น
ตัวอย่าง
List1.Clear
StringToList List1, "Str1,Str2,Str3,Str4"
12. ListToString
ส่งค่าจาก ListBox ไปยังในรูปของ String ที่คั่นด้วย , หรือ อื่นๆ
Function ListToString(lst As ListBox, Optional pDelimited) As String
- lst คือ ListBox ที่ส่งเข้ามา
- pDelimited ถ้าไม่ส่งมา จะใช้ , เป็นตัวคั่น
ส่งค่าเป็น String กลับมา
ตัวอย่าง
sText = ListToString(List1)
MsgBox sText
13. ListClick
ใช้เมื่อมีเหตุการณ์ Mouse_Click แล้วต้องการให้รับค่า Item เพื่อนำค่าไปแสดงใน TextBox หรืออื่นๆ
ListClick(lst As ListBox, itm As String)
- lst คือ ListBox ที่ส่งเข้ามา
- itm คือ ค่าItem ที่จะถูกส่งกลับไป
อนึ่งค่า itm ท่านอาจเปลี่ยนเป็น TextBox แทน String ก็ได้ เพื่อรับค่าไปแสดงที่ TextBox เลยตัวอย่าง ควรไปในเหตุเการณ์ List1_Click
Private Sub List1_Click()
ListClick List1, sText
Text1 = sText
End Sub
ถ้าท่านเปลี่ยน เป็น itm เป็น TextBox ใช้ดังนี้
Private Sub List1_Click()
ListClick List1, Text1
End Sub
14. ListTabStops
ใช้แบ่ง Columns ของ ListBox โดยใช้ Tab เป็นตัวคั่น อนึ่งถ้าใช้ VB6 จะมี Properties Columns ให้อยู่แล้วแต่ผมว่านะครับ ใช้ผ่าน API นี่แหละครับสามารถใช้ได้ทั้ง VB4,VB5,VB6 เลยครับ
ListTabStops(ListHandle As Long, ParamArray ParmList() As Variant)
-ListHandle คือค่า Handle ของ Listbox ที่ส่งเข้าไป
- ParmList คือ ค่าความกว้างของช่อง คั่นด้วย , เช่น ถ้ามี 3 ช่อง ต้องกำหนดดังนี้
"100,250,300" คือ ช่อง 1 กว้าง 100, 2 กว้าง 250 ช่อง 3 กว้าง 300
ตัวอย่าง
List1.AddItem "ช่อง1" & vbTab & "ช่อง2" & vbTab & "ช่อง 3 "
List1.AddItem "1" & vbTab & "รายการ1" & vbTab & " 100 "
List1.AddItem "2" & vbTab & "รายการ2" & vbTab & " 200 "
Call ListTabStops(List1.hWnd, 48, 74, 100)
15. ListHSBar
ใช้กรณีที่ ListBox มีกวามกว้างมาก เราจึงต้องสร้าง Horizontal Scroll Bar เพื่อใช้เลื่อนดูรายการที่เหลือ
ListHSBar(lst As ListBox, frm As Object)
- lst คือค่า ListBox ที่ส่งเข้ามา
- frm คือค่า Form ที่ ListBox นั้นอยู่
ตัวอย่าง
CALL ListHSBar(List1, Me)
หน้าแรก อุปกรณ์ที่ประกอบเป็นเครื่องคอมพิวเตอร์ เกาเหลาเทคนิคการใช้ HTML วิธีทำสร้าง Shortcut บน Desktop ปัญหาใหญ่ของ Data transfer