Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
   
 

Registered : 102,602


HOME > บทความจากสมาชิก > Windows Form กับ ListView แสดงข้อมูลบน ListView ในรูปแบบ Table/Grid (VB.Net,C#)

Windows Form กับ ListView แสดงข้อมูลบน ListView ในรูปแบบ Table/Grid (VB.Net,C#)

 
 
       
Bookmark.   
Share
       
Windows Form กับ ListView แสดงข้อมูลบน ListView ในรูปแบบ Table/Grid (VB.Net,C#) สำหรับ ListView เป็น Control ตัวหนึ่งที่น่าสนใจมาก ใช้สำหรับการแสดงข้อมูลในรูปแบบของ List และ Item แสดงผลเป็นแบบ Table หรือ Grid สามารถสร้างรูปแบบของการแสดงได้เป็น Column และ Rows และความสามารถอื่นๆ เช่น กำหนดความกวางของ Column, จัดตำแหน่ง ซ้าย,ตรงกลาง,ขวา กำหนดประเภทของ Column เป็น Checkbox, Button , Image รวมถึงการ Select รายการที่รองรับการ Click เลือกแบบ รายการเดียว หรือ มากกว่าหนึ่งรายการ เป็นต้น



Windows Form and ListView


ข้อสังเกตุในการใช้ ListView จะแตกต่างกับ Control ที่เป็นพวก Data Control อื่นๆ คือ จะไม่มีการกำหนด DataSource ให้กับ ListView แต่จะใช้การ Loop รายการข้อมูลแล้ว Add รายการ Item ให้กับ ListView

ตัวอย่างการใช้ ListView แบบง่ายๆ ในรูปแบบต่างๆ

Windows Form ListView

ให้สร้าง Control ชื่อว่า ListView โดยการลากมาวางไว้ที่ Form

Windows Form ListView

เปลี่ยนชื่อใหม่ เพื่อให้ง่ายต่อการเรียกใช้งาน

ในการแสดงข้อมูลบน ListView สามารถเพิ่มรายการ Item ได้จาก Collection ได้เลย

Windows Form ListView

คลิกที่ Collection เพื่อเพิ่ม Control ผ่าน Wizard

Windows Form ListView

รายการ ListViewItem

ทดสอบการทำงาน

Windows Form ListView

ผลลัพธ์ที่ได้ในกรณีที่เพิ่มผ่าน Wizard

แต่ในการใช้งานจริงแล้วรายการข้อมูลต่าง ๆ จะมาจาก Object ต่างๆ ไม่ว่าจะเป็น Array,List หรือข้อมูลที่มาจาก Database ที่อยู่ในรูปแบบ DataSet, DataTable, DataReader ซึ่งในการนำมาใช้งานกับ ListView เราจะต้องทำการ Loop ข้อมูลนั้น ๆ และเพิ่มรายการ ListViewItem ให้กับ ListView

Ex1 : ตัวอย่างการแสดงข้อมูลจาก List<T>

VB.Net
   Public Class EmpProfiles
        Public Property EMP_ID() As String
            Get
                Return m_EMP_ID
            End Get
            Set
                m_EMP_ID = Value
            End Set
        End Property
        Private m_EMP_ID As String
        Public Property EMP_NAME() As String
            Get
                Return m_EMP_NAME
            End Get
            Set
                m_EMP_NAME = Value
            End Set
        End Property
        Private m_EMP_NAME As String
        Public Property EMP_SALARY() As Decimal
            Get
                Return m_EMP_SALARY
            End Get
            Set
                m_EMP_SALARY = Value
            End Set
        End Property
        Private m_EMP_SALARY As Decimal
    End Class

    Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        '*** List<T>
        Dim ls = New List(Of EmpProfiles)()
        ls.Add(New EmpProfiles() With {
            .EMP_ID = "E001",
            .EMP_NAME = "Wipa Nukitram",
            .EMP_SALARY = 10000
        })
        ls.Add(New EmpProfiles() With {
            .EMP_ID = "E002",
            .EMP_NAME = "Thitapat Nukitram",
            .EMP_SALARY = 20000
        })
        ls.Add(New EmpProfiles() With {
            .EMP_ID = "E003",
            .EMP_NAME = "Wisarut Nukitram",
            .EMP_SALARY = 30000
        })

        '*** ListView Header
        Me.myListView.Clear()
        myListView.Columns.Clear()
        myListView.HideSelection = False
        myListView.Columns.Add("Emp ID", 50, HorizontalAlignment.Center)
        myListView.Columns.Add("Emp Name", 225, HorizontalAlignment.Left)
        myListView.Columns.Add("Emp Salary", 150, HorizontalAlignment.Right)
        myListView.FullRowSelect = True
        myListView.View = View.Details

        '*** ListView Row
        For Each item In ls
            Dim lvi = New ListViewItem(item.EMP_ID)
            lvi.SubItems.Add(item.EMP_NAME)
            lvi.SubItems.Add(item.EMP_SALARY.ToString())
            Me.myListView.Items.Add(lvi)
        Next

    End Sub
C#
        public class EmpProfiles
        {
            public string EMP_ID { get; set; }
            public string EMP_NAME { get; set; }
            public decimal EMP_SALARY { get; set; }
        }

        private void frmMain_Load(object sender, EventArgs e)
        {

            //*** List<T>
            var ls = new List<EmpProfiles>();
            ls.Add(new EmpProfiles { EMP_ID = "E001", EMP_NAME = "Wipa Nukitram", EMP_SALARY = 10000 });
            ls.Add(new EmpProfiles { EMP_ID = "E002", EMP_NAME = "Thitapat Nukitram", EMP_SALARY = 20000 });
            ls.Add(new EmpProfiles { EMP_ID = "E003", EMP_NAME = "Wisarut Nukitram", EMP_SALARY = 30000 });


            //*** ListView Header
            this.myListView.Clear();
            myListView.Columns.Clear();
            myListView.HideSelection = false;
            myListView.Columns.Add("Emp ID", 50, HorizontalAlignment.Center);
            myListView.Columns.Add("Emp Name", 225, HorizontalAlignment.Left);
            myListView.Columns.Add("Emp Salary", 150, HorizontalAlignment.Right);
            myListView.FullRowSelect = true;
            myListView.View = View.Details;

            //*** ListView Row
            foreach(var item  in ls)
            {
                var lvi = new ListViewItem(item.EMP_ID);
                lvi.SubItems.Add(item.EMP_NAME);
                lvi.SubItems.Add(item.EMP_SALARY.ToString());
                this.myListView.Items.Add(lvi);
            }
           
        }

ทดสอบการทำงาน

Windows Form ListView

ผลลัพธ์ที่ได้


1.1 การเพิ่ม Event สำหรับการการเลือกรายการ

Windows Form ListView

ในกรณีที่ต้องการเพิ่มการ Select ข้อมูลให้เพิ่ม Event ที่มีชื่อว่า SelectedIndexChanged

VB.Net
    Private Sub myListView_SelectedIndexChanged(sender As Object, e As EventArgs) Handles myListView.SelectedIndexChanged
        If Me.myListView.SelectedItems.Count > 0 Then
            Dim selData As String = Me.myListView.SelectedItems(0).Text
            MessageBox.Show(selData)
        End If
    End Sub
C#
        private void myListView_SelectedIndexChanged(object sender, EventArgs e)
        {
            if(this.myListView.SelectedItems.Count > 0)
            {
                String selData = this.myListView.SelectedItems[0].Text;
                MessageBox.Show(selData);
            }
        }

ทดสอบการทำงาน

Windows Form ListView

แสดงรายการบน ListView

Windows Form ListView

และเมื่อมีการคลิกที่ Item จะแสดงข้อมูลใน Column ที่ 1 ออกมาทาง MessageBox


1.2 การเลือกแบบหลายรายการหรือ Multiselect

Windows Form ListView

กำหนด Property ชื่อว่า Multiselect เป็น True

Windows Form ListView

ให้ลบ Event ชื่อว่า SelectedIndexChanged และสร้าง Button สำหรับการคลิกแดงรายการที่ได้เลือกจากหลายๆ รายการ

VB.Net
    Private Sub btnSelect_Click(sender As Object, e As EventArgs) Handles btnSelect.Click
        If Me.myListView.SelectedItems.Count > 0 Then
            For Each item As ListViewItem In Me.myListView.SelectedItems
                Dim selData As String = item.SubItems(0).Text
                MessageBox.Show(selData)
            Next
        End If
    End Sub
C#
        private void btnSelect_Click(object sender, EventArgs e)
        {
            if (this.myListView.SelectedItems.Count > 0)
            {
                foreach (ListViewItem item in this.myListView.SelectedItems)
                {
                    String selData = item.SubItems[0].Text;
                    MessageBox.Show(selData);
                }
            }
        }

ทดสอบการทำงาน

Windows Form ListView

ทดสอบการเลือกหลายๆ รายการ

Windows Form ListView

คลิกที่ Button เพื่ออ่านค่ารายการที่เลือก แสดงรายการที่เลือกบน MessageBox

Windows Form ListView

แสดงรายการที่เลือกบน MessageBox



Ex2 : การอ่านข้อมูลจาก Database เพื่อแสดงผลบน ListView

Windows Form ListView

ในตัวอย่างนี้จะใช้ Database ของ SQL Server ให้สร้าง Table ง่ายๆ ดังรูป

Windows Form ListView

ตัวอย่างข้อมูล โดยในการดึงข้อมูลสามารถใช้ DataReader , DataSet, DataTable หรืออื่นๆ ขึ้นอยู่กับความถนัด

VB.Net
 Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        '*** Connect Database
        Dim strConnString As String = "Server=localhost;UID=sa;PASSWORD=;database=mydatabase;"
        Dim objConn = New SqlConnection(strConnString)
        objConn.Open()

        Dim strSQL As String = "SELECT * FROM mytable"
        Dim objCmd = New SqlCommand(strSQL, objConn)
        Dim dtReader = objCmd.ExecuteReader()

        '*** ListView Header
        Me.myListView.Clear()
        myListView.Columns.Clear()
        myListView.HideSelection = False
        myListView.Columns.Add("Emp ID", 50, HorizontalAlignment.Center)
        myListView.Columns.Add("Emp Name", 225, HorizontalAlignment.Left)
        myListView.Columns.Add("Emp Salary", 150, HorizontalAlignment.Right)
        myListView.FullRowSelect = True
        myListView.View = View.Details

        '*** ListView Row
        While dtReader.Read()
            Dim lvi = New ListViewItem(dtReader("EmpID").ToString())
            lvi.SubItems.Add(dtReader("EmpName").ToString())
            lvi.SubItems.Add(dtReader("EmpSalary").ToString())
            Me.myListView.Items.Add(lvi)
        End While

        '*** Close Database
        dtReader.Close()
        dtReader = Nothing
        objConn.Close()

    End Sub
C#
        private void frmMain_Load(object sender, EventArgs e)
        {

            //*** Connect Database
            string strConnString = "Server=localhostSQL2014;UID=sa;PASSWORD=;database=mydatabase;";
            var objConn = new SqlConnection(strConnString);
            objConn.Open();

            string strSQL = "SELECT * FROM mytable";
            var objCmd = new SqlCommand(strSQL, objConn);
            var dtReader = objCmd.ExecuteReader();

            //*** ListView Header
            this.myListView.Clear();
            myListView.Columns.Clear();
            myListView.HideSelection = false;
            myListView.Columns.Add("Emp ID", 50, HorizontalAlignment.Center);
            myListView.Columns.Add("Emp Name", 225, HorizontalAlignment.Left);
            myListView.Columns.Add("Emp Salary", 150, HorizontalAlignment.Right);
            myListView.FullRowSelect = true;
            myListView.View = View.Details;

            //*** ListView Row
            while(dtReader.Read())
            { 
                var lvi = new ListViewItem(dtReader["EmpID"].ToString());
                lvi.SubItems.Add(dtReader["EmpName"].ToString());
                lvi.SubItems.Add(dtReader["EmpSalary"].ToString());
                this.myListView.Items.Add(lvi);
            }

            //*** Close Database
            dtReader.Close();
            dtReader = null;
            objConn.Close();

        }

ทดสอบการทำงาน

Windows Form ListView

แสดงข้อมูลรายการจาก Table บน ListView


   
Share





  By : TC Admin
  Article : บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ
  Score Rating :
  Create Date : 2017-02-17
  Download : No files
Sponsored Links
 

Sponsored Links
Android Get Result / Search Data from Server via Web Service
Android Get Result / Search Data from Server via Web Service
ตัวอย่างการใช้ Android เพื่ออ่านข้อมูลจาก Web Service โดยใน Web Service จะใช้ PHP กับ MySQL เปิด Service ที่จะรอการเรียกข้อมูลด้วย Android และใช้การส่งข้อมูลจาก Web Service
Rating : Update : 2013-10-14 10:03:05
Windows Form กับ Upload File ลงใน Database และแสดงผลรายการไฟล์บน Table (VB.Net,C#)
Windows Form กับ Upload File ลงใน Database และแสดงผลรายการไฟล์บน Table (VB.Net,C#)
ตัวอย่างการอัพโหลดไฟล์บน Windows Form Application ลงใน Database และ Table รวมทั้งวิธีการดึงรายการไฟล์มาแสดงบน Form การเปิดไฟล์
Rating : Update : 2017-02-17 17:24:52
GFI LanGuard ผู้ช่วยการรักษาความปลอดภัยในระบบเน็ตเวิร์คของธุรกิจคุณอย่างอัตโนมัติ
GFI LanGuard ผู้ช่วยการรักษาความปลอดภัยในระบบเน็ตเวิร์คของธุรกิจคุณอย่างอัตโนมัติ
GFI LanGuard โซลูชั่นใหม่ ด้านการสแกนความปลอดภัย บนเครือข่ายเน็ตเวิร์คและการบริหารจัดการแพตซ์การตรวจสอบระบบคอมพิวเตอร์ ทั้ง ฮาร์ดแวร์และซอฟต์แวร์ รวมถึงการประเมินช่องโหว่บนระบบสารสนเทศ
Rating : Update : 2016-01-26 22:04:44
PHP PDO By itechs สอน PHP ติดต่อ Database ด้วย PDO (Youtube)
PHP PDO By itechs สอน PHP ติดต่อ Database ด้วย PDO (Youtube)
เขียน PDO พื้นฐาน By itechs : คลิปสอนการเขียน PHP ติดต่อกับ Database ด้วย Class ของ PDO ซึ่งมีข้อดีที่สามารถรองรับ Database ได้หลากหลายประเภท เพียงแต่เปลี่ยน Driver ของ Connector ก็สามารถที่จะเปลี่ยนไปใช้ Database อื่น ๆ
Rating : Update : 2015-02-17 07:30:18
คลิปสอน PHP พื้นฐาน OOP, Workshop, Webboard, Login, Shopping Cart แบบฟรี ๆ
คลิปสอน PHP พื้นฐาน OOP, Workshop, Webboard, Login, Shopping Cart แบบฟรี ๆ
บทความนี้ขอรวบรวม Clip สอน PHP ทั้งหมดที่มีอยู่ในเว็บไซต์ไทยครีเอท ซึ่งเป็น ของสมาชิกที่ทำไว้ สอนเข้าใจง่าย มีหลากหลายรูปแบบ อาทิเช่น สอน PHP Basic , Workshop
Rating : Update : 2013-08-24 09:29:59
ทำให้ภาพพื้นหลัง Background  มันอยู่ตรงกลาง Center และพอดีกับหน้าเว็บ
ทำให้ภาพพื้นหลัง Background มันอยู่ตรงกลาง Center และพอดีกับหน้าเว็บ
ทำให้ภาพพื้นหลังมันอยู่ตรงกลางและพอดีกับหน้าเว็บ Background Image
Rating : Update : 2011-10-23 15:56:39


ThaiCreate.Com Forum
Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน Struts การเขียนโปรแกรม Java Struts Framework
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน Yii  Framework การเขียนโปรแกรม ภาษา PHP กับ Yii
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว

สุดยอด Source Code V2.0
 

แจ้งชำระเงิน/โอนเงิน
 

Hit Link
   




Acc : thaicreate@hotmail.com






Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2015 All Rights Reserved.
for Contact Us : [Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 084-715-5121 อัตราราคา คลิกที่นี่

Back to Top