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

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

[VB.NET] การย้ายไอเทมไปมาระหว่าง ListBox Control 2 ตัว

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

308

กระทู้

498

โพสต์

5971

เครดิต

ผู้ดูแลระบบ

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

Rank: 9Rank: 9Rank: 9

เครดิต
5971




ในการเคลื่อนย้ายไอเทม หรือรายการที่มีอยู่ใน ListBox Control หนึ่ง ไปยังอีกตัวหนึ่ง หลักการก็ไม่ได้ยากเย็นอะไรเลย สิ่งแรกคือเราต้องรู้จักคุณสมบัติ (Properties) ของตัว ListBox (หรือ Control ตัวอื่น) และกลวิธี (Method) ในการเพิ่ม (Add) หรือลบ (Remove) ในแต่ละไอเทม (Item) ...



หน้าจอ Design Time ...


มาดูโค้ดกันเถอะ ... คำอธิบายจะอยู่ในโค้ด หวังว่าคงเข้าใจได้ไม่ยาก
  1. ' / --------------------------------------------------------------------
  2. ' / Developer : Mr.Surapon Yodsanga (Thongkorn Tubtimkrob)
  3. ' / eMail : thongkorn@hotmail.com
  4. ' / URL: http://www.g2gnet.com (Khon Kaen - Thailand)
  5. ' / Facebook: https://www.facebook.com/g2gnet (For Thailand)
  6. ' / Facebook: https://www.facebook.com/commonindy (Worldwide)
  7. ' / Purpose: Transfer Items Between 2 ListBoxes.
  8. ' / Microsoft Visual Basic .NET (2010)
  9. ' /
  10. ' / This is open source code under @CopyLeft by Thongkorn Tubtimkrob.
  11. ' / You can modify and/or distribute without to inform the developer.
  12. ' / --------------------------------------------------------------------
  13. Public Class frmMoveItemListBox

  14.     Private Sub frmMoveItemListBox_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  15.         '// ใส่ค่าไอเทมตัวอย่าง
  16.         With ListBox1
  17.             .Items.Add("Computer")
  18.             .Items.Add("Processor")
  19.             .Items.Add("Notebook")
  20.             .Items.Add("Mouse")
  21.             .Items.Add("Keyboard")
  22.         End With
  23.         '// เพิ่มคำอธิบายบนปุ่มคำสั่งแต่ละตัว
  24.         Dim MyToolTip As New ToolTip
  25.         MyToolTip.SetToolTip(Me.Button1, "ย้ายไอเทมที่เลือกไปทางขวา")
  26.         MyToolTip.SetToolTip(Me.Button2, "ย้ายไอเทมที่เลือกไปทางซ้าย")
  27.         MyToolTip.SetToolTip(Me.Button3, "ย้ายไอเทมทั้งหมดไปทางขวา")
  28.         MyToolTip.SetToolTip(Me.Button4, "ย้ายไอเทมทั้งหมดไปทางซ้าย")
  29.         MyToolTip.SetToolTip(Me.Button5, "ย้ายไอเทมที่เลือกขึ้นไปด้านบน")
  30.         MyToolTip.SetToolTip(Me.Button6, "ย้ายไอเทมที่เลือกลงไปด้านล่าง")
  31.     End Sub

  32.     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  33.         '// ยังไม่ได้เลือกไอเทม
  34.         If ListBox1.SelectedIndex < 0 Then
  35.             MessageBox.Show("กรุณาเลือกไอเทมในรายการที่ 1 ก่อน.", "รายงานสถานะ", MessageBoxButtons.OK, MessageBoxIcon.Information)
  36.         Else
  37.             '// เพิ่มไอเทมที่เลือกจาก ListBox1 ไปให้กับ ListBox2
  38.             ListBox2.Items.Add(ListBox1.SelectedItem)
  39.             '// ลบไอเทมที่เลือกใน ListBox1 ออกไป
  40.             ListBox1.Items.Remove(ListBox1.SelectedItem)
  41.         End If
  42.     End Sub

  43.     Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
  44.         If ListBox2.SelectedIndex < 0 Then
  45.             MessageBox.Show("กรุณาเลือกไอเทมในรายการที่ 2 ก่อน.", "รายงานสถานะ", MessageBoxButtons.OK, MessageBoxIcon.Information)
  46.         Else
  47.             '// เพิ่มไอเทมที่เลือกจาก ListBox2 ไปให้กับ ListBox1
  48.             ListBox1.Items.Add(ListBox2.SelectedItem)
  49.             '// ลบไอเทมที่เลือกใน ListBox2 ออกไป
  50.             ListBox2.Items.Remove(ListBox2.SelectedItem)
  51.         End If

  52.     End Sub

  53.     Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
  54.         '// ลูปเอาไอเทมทั้งหมดที่มีอยู่ใน ListBox1 ไปให้กับ ListBox2
  55.         For Each item In ListBox1.Items
  56.             ListBox2.Items.Add(item)
  57.         Next
  58.         '// ลบไอเทมที่มีอยู่ทั้งหมดใน ListBox1 ออกไป
  59.         ListBox1.Items.Clear()
  60.     End Sub

  61.     Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
  62.         '// ลูปเอาไอเทมทั้งหมดที่มีอยู่ใน ListBox2 ไปให้กับ ListBox1
  63.         For Each item In ListBox2.Items
  64.             ListBox1.Items.Add(item)
  65.         Next
  66.         '// ลบไอเทมที่มีอยู่ทั้งหมดใน ListBox2 ออกไป
  67.         ListBox2.Items.Clear()
  68.     End Sub

  69.     Private Sub Button5_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click
  70.         '// การเลื่อนไอเทมขึ้น
  71.         If ListBox2.SelectedIndex > 0 Then
  72.             '// หากแถวที่ต้องการเลื่อนขึ้นไปข้างบน เช่น จากแถว 5 ต้องเลื่อนขึ้นไปอยู่ที่แถว 4 เลยต้องลบ 1
  73.             Dim iRow = ListBox2.SelectedIndex - 1
  74.             '// แทรกไอเทมในแถวที่เลื่อนขึ้นไป
  75.             ListBox2.Items.Insert(iRow, ListBox2.SelectedItem)
  76.             '// ลบแถวตัวมันเองออกไป
  77.             ListBox2.Items.RemoveAt(ListBox2.SelectedIndex)
  78.             '// เลือกแถวปัจจุบันที่ถูกเลื่อนขึ้น
  79.             ListBox2.SelectedIndex = iRow
  80.         End If
  81.     End Sub

  82.     Private Sub Button6_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click
  83.         '// Trap Error: หากไม่มีการเลือกไอเทม ก็ให้เด้งหนีออกไป
  84.         If ListBox2.SelectedItem = Nothing Then Exit Sub
  85.         '// ไอเทมที่เลือกต้องน้อยกว่า จำนวนไอเทมทั้งหมดลบ 1 (Index เรานับที่ 0)
  86.         If ListBox2.SelectedIndex < ListBox2.Items.Count - 1 Then
  87.             '// หาแถวที่ต้องเลื่อนลงไปข้างล่าง 2 ตำแหน่ง
  88.             Dim iRow = ListBox2.SelectedIndex + 2
  89.             '// ไปแทรกแถวไอเทมใหม่
  90.             ListBox2.Items.Insert(iRow, ListBox2.SelectedItem)
  91.             '// ลบตัวมันเองออก
  92.             ListBox2.Items.RemoveAt(ListBox2.SelectedIndex)
  93.             '// ลบออก 1 เพื่อเลือกแถวที่เลื่อนลงไป
  94.             ListBox2.SelectedIndex = iRow - 1
  95.         End If
  96.     End Sub
  97. End Class
คัดลอกไปที่คลิปบอร์ด

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

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

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

x
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

0

กระทู้

58

โพสต์

10

เครดิต

Member

Rank: 2

เครดิต
10
โพสต์ 2022-10-25 19:25:42 | ดูโพสต์ทั้งหมด

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

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

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

GMT+7, 2024-3-28 17:05 , Processed in 0.174854 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

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