您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何使用listView,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
一、基本使用:
listView.View = View.Details;//設置視圖 listView.SmallImageList = imageList;//設置圖標 //添加列 listView.Columns.Add("本地路徑", 150, HorizontalAlignment.Left); listView.Columns.Add("遠程路徑", 150, HorizontalAlignment.Left); listView.Columns.Add("上傳狀態", 80, HorizontalAlignment.Left); listView.Columns.Add("耗時", 80, HorizontalAlignment.Left); //添加行 var item = new ListViewItem(); item.ImageIndex = 1; item.Text = name; //本地路徑 item.SubItems.Add(path); //遠程路徑 item.SubItems.Add("ok"); //執行狀態 item.SubItems.Add("0.5"); //耗時統計 listView.BeginUpdate(); listView.Items.Add(item); listView.Items[listView.Items.Count - 1].EnsureVisible();//滾動到最后 listView.EndUpdate();
二、動態添加記錄,ListView不閃爍:
1.新建一個C# 類,命名為ListViewNF(NF=Never/No Flickering)
2.復制如下代碼
class ListViewNF : System.Windows.Forms.ListView { public ListViewNF() { // Activate double buffering this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); // Enable the OnNotifyMessage event so we get a chance to filter out // Windows messages before they get to the form's WndProc this.SetStyle(ControlStyles.EnableNotifyMessage, true); } protected override void OnNotifyMessage(Message m) { //Filter out the WM_ERASEBKGND message if (m.Msg != 0x14) { base.OnNotifyMessage(m); } } }
3.修改你的WinForm對應的xxxx.Design.cs,將系統默認生成的System.Windows.Forms.ListView改為ListViewNF即可。
三、動態添加記錄,跳轉到最后行:
實現代碼:
ListViewItem Item = new ListViewItem(); Item.SubItems.Clear(); .....相關其他代碼 this.listView1.Items.Add(Item); Item.EnsureVisible(); //關鍵的實現函數
四、點擊表頭實現排序:
1.增加自定義排序類:
using System; using System.Collections; using System.Windows.Forms; namespace Whir.Software.Framework.UI { public class ListViewSort : IComparer { private readonly int _col; private readonly bool _descK; public ListViewSort() { _col = 0; } public ListViewSort(int column, object desc) { _descK = (bool)desc; _col = column; //當前列,0,1,2...,參數由ListView控件的ColumnClick事件傳遞 } public int Compare(object x, object y) { int tempInt = String.CompareOrdinal(((ListViewItem)x).SubItems[_col].Text, ((ListViewItem)y).SubItems[_col].Text); if (_descK) { return -tempInt; } return tempInt; } } }
2.給ListView增加點擊表頭事件:
private void listView_ColumnClick(object sender, ColumnClickEventArgs e) { if (listView.Columns[e.Column].Tag == null) { listView.Columns[e.Column].Tag = true; } var tabK = (bool)listView.Columns[e.Column].Tag; listView.Columns[e.Column].Tag = !tabK; listView.ListViewItemSorter = new ListViewSort(e.Column, listView.Columns[e.Column].Tag); //指定排序器并傳送列索引與升序降序關鍵字 listView.Sort();//對列表進行自定義排序 }
以上就是如何使用listView,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。