Data addition of c# listview control and processing of common events

Set table lines:

FullRowSelect = true;

GridLines=true;

View=Details;

Add data with datatable:

/// <summary>
        /// ListView control content display
        /// </summary>
        /// <param name="dt">Data table source</param>
        /// <param name="liv">Control name</param>
        public static void LivMainDisPlay(DataTable dt, ListView liv)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ListViewItem list = new ListViewItem();
                for (int j = 0; j < dt.Columns.Count - 1; j++)
                {
                    list.SubItems[0].Text = dt.Rows[i][0].ToString();
                    list.SubItems.Add(dt.Rows[i][j + 1].ToString());
                }
                liv.Items.Add(list);
            }
        }
        /// <summary>
        /// ListView control column name display
        /// </summary>
        /// <param name="dt">Data table source</param>
        /// <param name="liv">Control name</param>
        public static void LivColumnDisplay(DataTable dt, ListView liv)
        {
            foreach (DataColumn i in dt.Columns)
            {
                liv.Columns.Add(i.ColumnName);
            }
            liv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
        }

The calling sequence is as follows:

listview1.Clear();

LivMainDisPlay(dt,listview1);

LivColumnDisplay(dt,listview1);

Set the table mouse movement background to change:

private void lst_ItemMouseHover(object sender, ListViewItemMouseHoverEventArgs e)
        {
            foreach (ListViewItem item in this.lst.Items)
            {
                if(e.Item!=item)
                item.BackColor = Color.White;
            }
            e.Item.BackColor = Color.Red;
           
        }

Click on a line to copy the selected text (to the system clipboard):

private void lst_Click(object sender, EventArgs e)
        {
            int selectCount = lst.SelectedItems.Count;
            if (selectCount > 0)

            {

System.Windows.Forms.Clipboard.SetText(lst.SelectedItems[0].SubItems[0].Text);

            }
        }

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325649508&siteId=291194637