中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用listView

發布時間:2021-09-13 11:33:15 來源:億速云 閱讀:306 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關如何使用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,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸定县| 库尔勒市| 屏边| 开阳县| 阿克| 衡东县| 阳朔县| 周至县| 武功县| 图木舒克市| 崇礼县| 榆林市| 临颍县| 鄢陵县| 东城区| 昆明市| 宜兴市| 阿勒泰市| 全南县| 东光县| 桐梓县| 磴口县| 祥云县| 阳谷县| 聂拉木县| 阳原县| 崇义县| 上林县| 保山市| 甘泉县| 咸阳市| 大英县| 永仁县| 于都县| 土默特左旗| 河曲县| 尚义县| 洛川县| 京山县| 天长市| 白银市|