เรียงลำดับข้อมูลใน ListView

พื้นฐานการใช้ ตัวอย่างก่อนหน้านี้ เราจะเห็นวิธีการ, Visual Basic. , เรียงลำดับข้อมูลใน listview โดยหนึ่งในคอลัมน์ของเขา

โครงการ ก่อนที่ คุณจะเพิ่มสองปุ่มเพื่อเลือกซึ่งเป็นลำดับที่ต้องการ ดังแสดงในภาพด้านล่าง:

ต่อมาในรหัสแบบฟอร์มเดียวกันกับที่เราจะสร้างสองชั้นเรียนใหม่ (OrdenarPorNombre และสั่งซื้อตามขนาด) และเหตุการณ์ของปุ่มเลียเราตั้งสถานที่ให้บริการ ListView ListViewItemSorter กับอินสแตนซ์ใหม่ของการเรียนสำหรับการสั่งซื้อที่เลือก รหัสสั้นจึงไม่เสียค่าใช้จ่ายในการวิเคราะห์มาก แล้วฉันจะปล่อยให้ทุกรหัสของแบบฟอร์ม:

 System.IO Imports
 สาธารณะ Form1 ระดับ

 Private Sub Form1_Load (ByVal ผู้ส่งเป็น System.Object, _
 ByVal e เป็น System.EventArgs) MyBase.Load จับ
 มซำ d As New DirectoryInfo ("C: \ Windows")
 ListView1.View = View.Details
 ทรู ListView1.FullRowSelect =

 ListView1.BeginUpdate ()
 ListView1.Items.Clear ()

 สำหรับ F แต่ละ FileInfo ใน d.GetFiles
 รายการที่มซำเป็นนิ ListViewItem (f.Name)

 item.SubItems.Add (f.length)
 item.SubItems.Add (f.CreationTime)
 item.SubItems.Add (f.LastWriteTime)
 item.SubItems.Add (f.LastAccessTime)

 ListView1.Items.Add (รายการ)
 ต่อไป
 ListView1.EndUpdate ()

 ย่อยสิ้นสุด

 Private Sub Button1_Click (ByVal ผู้ส่งเป็น System.Object, _
 ByVal e เป็น System.EventArgs) จัดการ Button1.Click
 เรียงตามชื่อ
 ListView1.ListViewItemSorter = ordenarPorNombre ใหม่
 ย่อยสิ้นสุด

 Private Sub Button2_Click (ByVal ผู้ส่งเป็น System.Object, _
 ByVal e เป็น System.EventArgs) จัดการ Button2.Click
 เรียงตามขนาด
 ListView1.ListViewItemSorter = ordenarPorTamañoใหม่
 ย่อยสิ้นสุด
 ระดับ End

 ordenarPorNombre ระดับ
 ดำเนิน IComparer
 ฟังก์ชั่นสาธารณะเปรียบเทียบ (ByVal x As Object, ByVal Y As Object) _
 As Integer นำกระบวนการ System.Collections.IComparer.Compare
 มซำเป็น item1 ListViewItem = วัตถุ CType (x, ListViewItem)
 มซำ item2 ในฐานะที่เป็นวัตถุ CType ListViewItem = (y, ListViewItem)
 กลับ String.Compare (item1.Text, item2.Text)
 ฟังก์ชั่นเอนด์
 ระดับ End
 ordenarPorTamañoระดับ
 ดำเนิน IComparer

 ฟังก์ชั่นสาธารณะเปรียบเทียบ (ByVal x As Object, ByVal Y As Object) _
 As Integer นำกระบวนการ System.Collections.IComparer.Compare
 มซำเป็น item1 ListViewItem = วัตถุ CType (x, ListViewItem)
 มซำ item2 ในฐานะที่เป็นวัตถุ CType ListViewItem = (y, ListViewItem)
 ย้อนกลับ Math.Sign (CLng (item1.SubItems (1) ข้อความ) -.. CLng (item2.SubItems (1) ข้อความ))
 ฟังก์ชั่นเอนด์
 ระดับ End

และเช่นเคยผมหวังว่ารหัสจะเป็นประโยชน์

11 Responses to "การเรียงลำดับข้อมูลใน ListView"

  1. Bitacoras.com ข้อมูล ...

    อัตราใน Bitacoras.com: ใช้เป็นพื้นฐานในตัวอย่างข้างต้นเราจะเห็นวิธีการ, Visual Basic สุทธิ ListView เรียงลำดับข้อมูลตามคอลัมน์ใด ๆ ของ. โครงการก่อนหน้านี้จะเพิ่มสองปุ่มเพื่อเลือกซึ่งเป็นคำสั่งของ .....

  2. ลอร่าพูดว่า:

    ตกลงได้ แต่เพียงแค่นี้ ... จากน้อยไปมากการสั่งซื้อและการสั่งซื้อสินค้าขึ้นและลงให้คลิกที่ส่วนหัวของคอลัมน์?

  3. เอลีชา says:

    ลอร่าสูง:

    ต้องการสั่งซื้อตามชื่อจากมากไปน้อยก็ต้องย้อนกลับตัวแปรที่ถูกส่งกลับในชั้นเรียน OrdenarPorNombre ... คุณต้องเปลี่ยน:
    กลับ String.Compare (item1.Text, item2.Text)
    สำหรับนี้:
    กลับ String.Compare (item2.Text, item1.Text)

    และในกรณีของลำดับตัวเลขจะต้องกลับเข้าสู่ระบบที่ส่งกลับโดยกรณีordenarPorTamañoเปลี่ยนแปลงนี้:
    ย้อนกลับ Math.Sign (CLng (item1.SubItems (1) ข้อความ) -.. CLng (item2.SubItems (1) ข้อความ))
    สำหรับนี้:
    กลับ Math.Sign () CLng (item1.SubItems (1) ข้อความ.) - CLng (. item2.SubItems (1) ข้อความ)) * -1)

    และในที่สุดก็บอกคุณได้ว่าคำสั่งซื้อให้คลิกที่คอลัมน์ของ ListView ไม่แสดงความคิดเห็นที่นี่เพราะผมต้องการที่จะอุทิศบทความที่แยกต่างหาก

    ทักทาย, เอลีชา

  4. ออสการ์ says:

    และเป็นลำดับที่คุณตามเขตข้อมูลใด ๆ ในวันที่จากมากไปน้อยวันที่สร้างเช่น

    • เอลีชา says:

      เพิ่มระดับต่อไปและกำหนดให้ปุ่มที่คุณต้องการ

      ordenarPorFechaCreacion ระดับ
      ดำเนิน IComparer

      ฟังก์ชั่นสาธารณะเปรียบเทียบ (ByVal x As Object, ByVal Y As Object) _
      As Integer นำกระบวนการ System.Collections.IComparer.Compare
      มซำเป็น item1 ListViewItem = วัตถุ CType (x, ListViewItem)
      มซำ item2 ในฐานะที่เป็นวัตถุ CType ListViewItem = (y, ListViewItem)
      กลับ Date.Compare (Date.parse (item1.SubItems (2). ข้อความ), Date.parse (item2.SubItems (2). ข้อความ))
      ฟังก์ชั่นเอนด์
      ระดับ End

  5. Roxana says:

    สวัสดีคน
    ใน C # ที่เป็นจะเป็นประโยคคำสั่งเดียวกัน?

  6. bebrafraptaug says:

    เริ่มต้น dobry

  7. โจชัวพูดว่า:

    ในกรณีที่ถ้าผมมีรายการอื่น ๆ
    23 = 5 +5 +13
    5 = 1 +1 +1 +2
    4 = 3 +1
    ฯลฯ .....
    ฉันจะทำตามที่ฉันสั่งได้ด้วยตัวเลขว่าถ้าผลเป็นผม 231 = 100 100 31 ไม่ได้ใส่ไว้หลัง 23 = 5 5 13

  8. วิกเตอร์พูดว่า:

    บ่ายวันดี,

    ขออภัยในความไม่สะดวก แต่จะได้รู้ว่าวิธีที่คุณสามารถเรียงลำดับตามคอลัมน์ที่สองในครั้งเดียว? อะไรเช่นนี้
    XYZ
    ABA -> 1
    Baa -> 2
    กับ b -> 3

    และซ้าย:

    XYZ
    กับ b -> 3
    ABA -> 1
    Baa -> 2

    ซุปเปอร์ขอบคุณถ้าคุณสามารถช่วยและหากไม่ได้ขอบคุณสำหรับการโพสต์ข้อมูลเดียวกันกับที่เป็นประโยชน์กับฉันยัง

  9. Cinthia กล่าวว่า

    และถ้าคุณต้องการวัน ..... ซึ่งไม่เพียง แต่ตามวันที่ของการสร้าง

ความเห็น