Windows Forms: How to pass ListView row data into another Form in C#

How to pass ListView row data into another Form in C#

Step 1Click New Project, then select Visual C# on the left, then Windows and then select Windows Forms Application. Name your project "LinkListViewToDatabase" and then click OK

link listview to database

Step 2: Design your form as below

Form1

listview c#

frmDetail

listview c#

Step 3: Create an Entity Framework Model, then add a Product table from Northwind database to your model

ef model c#

Step 4: Add code to handle your form as below

frmDetail

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace LinkListViewToDatabase
{
    public partial class frmDetail : Form
    {
        public frmDetail(Product p)
        {
            InitializeComponent();
            productBindingSource.DataSource = p;
        }
    }
}

Form1

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace LinkListViewToDatabase
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnLoad_Click(object sender, EventArgs e)
        {
            //Init data
            Cursor.Current = Cursors.WaitCursor;
            using (NorthwindEntities db = new NorthwindEntities())
            {
                List<Product> list = db.Products.ToList();
                foreach(Product p in list)
                {
                    ListViewItem item = new ListViewItem(p.ProductID.ToString());
                    item.SubItems.Add(p.ProductName);
                    item.SubItems.Add(p.UnitPrice.ToString());
                    item.SubItems.Add(p.UnitsInStock.ToString());
                    listView.Items.Add(item);
                }
            }
            Cursor.Current = Cursors.Default;
        }

        private async void listView_ItemActivate(object sender, EventArgs e)
        {
            if (listView.SelectedItems.Count > 0)
            {
                ListViewItem item = listView.SelectedItems[0];
                using (NorthwindEntities db = new NorthwindEntities())
                {
                    string productId = item.SubItems[0].Text;
                    Product p = await db.Products.FindAsync(Convert.ToInt32(productId));
                    if (p != null)
                    {
                        using (frmDetail frm = new frmDetail(p))
                        {
                            if (frm.ShowDialog() == DialogResult.OK)
                            {
                                //Process
                            }
                        }
                    }
                }
            }
        }
    }
}

VIDEO TUTORIALS