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,787

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



 

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

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

[--Ad3--]


   
Share
Bookmark.   

  By : TC Admin
  Article : บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ
  Score Rating :
  Create Date : 2017-02-17
  Download : No files
Sponsored Links
ตอนที่ 6 : การสร้าง Loop ข้อมูลบน Stored Procedure (SQL Server : Stored Procedure)
ตอนที่ 6 : การสร้าง Loop ข้อมูลบน Stored Procedure (SQL Server : Stored Procedure)
ตอนที่ 6 : การสร้าง Loop ข้อมูลบน Stored Procedure (SQL Server : Stored Procedure)
Rating : Update : 2015-09-25 14:24:05
แนะนำการใช้งาน CRUDigniter 3  + Bootstrap เบื้องต้น
แนะนำการใช้งาน CRUDigniter 3 + Bootstrap เบื้องต้น
หากคุณเป็นอีกคนหนึ่งที่หลงไหลในการพัฒนาระบบหรือเว็บไซต์ โดยยึดเอา framework เป็นหลักในการพัฒนา ปกติ framework จะถูกออกแบบให้ทำงานแบบ MVC อยู่แล้ว ยิ่งทำให้เราง่ายต่อการพัฒนา หรือแก้ไข หรือทำงานเป็นทีมด้วยกันได้ ผมขอแนะนำ Tool Online ตัวหนึ่งชื่อว่า crudigniter ซึ่งเป็นระบบที่ทำงานแบบออนไลน์ crudigniter นี้ผมว่าน่าจะตอบโจทย์ให้กับนักพัฒนารุ่นเก่าหรือใหม่ที่กำลังสนใจ Codeigniter อยู่ เรามาร่วมใช้งานง่ายๆกันเลยครับ ซึ่ง crudigniter ตัวนี้จะเป็นการนำเอาฐานข้อมูลที่เราได้ออกแบบและสร้าง table ไว้แล้วนะครับ จากนั้นเราก็แค่นำเข้า(import)ฐานข้อมูล MySQL เข้าไปตัวระบบเขาก็จะทำการ Generated Code ให้เอง จากนั้นเราก็แค่กำหนดค่าต่างๆ เช่น อยากให้ หน้าฟอร์ม เป็นแบบไหน เราก็สามารถกำหนดได้ครับ ง่ายๆ แค่ 5 ขั้นตอน
Rating : Update : 2016-08-26 09:11:29
Android PHP/MySQL (UTF-8) : รับ-ส่ง ภาษาไทย ระหว่าง Android กับ MySQL
Android PHP/MySQL (UTF-8) : รับ-ส่ง ภาษาไทย ระหว่าง Android กับ MySQL
ตัวอย่างการเขียน Android ติดต่อกับ PHP และ MySQL Database ผ่าน HttpPost ที่อยู่ในรูปแบบของ URL Website จากแหล่งต่าง ๆ โดย Android จะใช้ HttpPost และ HttpGet ในรูปแบบของข้อความภาษาไทย
Rating : Update : 2015-11-17 11:27:32
วิธีทำปุ่ม Share Button ของ Facebook บนหน้าเพจ ให้แสดงรูปภาพให้ถูกต้อง (Update 2017)
วิธีทำปุ่ม Share Button ของ Facebook บนหน้าเพจ ให้แสดงรูปภาพให้ถูกต้อง (Update 2017)
บทความตัวอย่างการทำปุ่ม Share ของ Facebook บนหน้า Webpage ให้แสดง title , description และ image ให้ถูกต้อง (อัพเดด 2017)
Rating : Update : 2017-03-24 18:16:23
C# การใช้งาน DataTable กับ DataGridView (MS Access 2007) แบบบ้านๆ
C# การใช้งาน DataTable กับ DataGridView (MS Access 2007) แบบบ้านๆ
บทความนี้จะกล่าวถึง การใช้งาน datatable กับ DataGridView (Access 2007) แบบบ้านๆ หลังจากที่ผมใช้งาน DataSource Wizard กับ DataGridView (Access 2007)ได้แล้ว
Rating : Update : 2015-10-02 21:11:27
jQuery Datepicker และ Date Diff การใช้ Datepicker และการหาค่าต่างระหว่าง 2 วันที่
jQuery Datepicker และ Date Diff การใช้ Datepicker และการหาค่าต่างระหว่าง 2 วันที่
บทความเทคนิคเล็ก ๆ น้อย ๆ เกี่ยวกับการใช้ jQuery Datepicker จำนวน 2 ช่อง และการหาค่า Date Diff เมื่อเลือกวันที่เรียบร้อยแล้ว
Rating : Update : 2017-03-25 13:21:37
(MySQLi) PHP MySQL กับ Login Form ตรวจสอบ User/Password แบบง่าย ๆ ด้วย mysqli
(MySQLi) PHP MySQL กับ Login Form ตรวจสอบ User/Password แบบง่าย ๆ ด้วย mysqli
(MySQLi) ตัวอย่างการทำ Form Login แบบง่าย ๆ ด้วยฐานข้อมูล MySQL ฟังก์ชั่นใหม่ mysqli โดยมีการตวจสอบ Username และ Password รวมทั้งสถานะว่าเป็น User หรือว่า Admin มีการแบ่งระดับการเข้าใช้งาน
Rating : Update : 2017-03-25 13:10:22
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
VBScript Tutorial
VBScript Validation
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 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2017 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
for Contact Us : [Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 089-968-0655 อัตราราคา คลิกที่นี่