设置表格线:
FullRowSelect=true;
GridLines=true;
View=Details;
用数据表添加数据:
/// <summary> /// ListView控件内容显示 /// </summary> /// <param name="dt">数据表源</param> /// <param name="liv">控件名称</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控件列名显示 /// </summary> /// <param name="dt">数据表源</param> /// <param name="liv">控件名称</param> public static void LivColumnDisplay(DataTable dt, ListView liv) { foreach (DataColumn i in dt.Columns) { liv.Columns.Add(i.ColumnName); } liv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); }
调用顺序如下:
listview1.Clear();
LivMainDisPlay(dt,listview1);
LivColumnDisplay(dt,listview1);
设置表格鼠标移动背景改变:
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; }
单击某行复制选中文本(复制到系统剪切板):
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);
}}