One Piece

WinForm控件之【ListView】

基本介绍

项列表控件,拥有五种不同视图的样式供展示项集合。

常设置属性

Columns:‘详细信息’视图中用来显示的列;

Groups:ListView列表中的组,将列表各项分组区域展示;

HorizontalScrollbar:当值为true时任一项内容超出控件右边缘将显示水平滚动条;

Enabled:指示是否启用该控件,true为启用状态用户可操作列表设置的允许功能,false为禁用状态无法操作;

Items:列表中的项集合;

LabelEdit:是否允许用户就地编辑项标签;

LargeImageList:列表以大图标视图时需要绑定图像的属性;

SmallImageList:列表以小图标视图时需要绑定图像的属性;

Name:指示代码中用来标识该对象的名称;

View:设置客户显示项的五种不同视图中的一种;

 

事例举例

 

 

 相关代码

 

        //加载女神图片显示到列表
        private void btn_LoadInfo_Click(object sender, EventArgs e)
        {
            //查重新绑定时清空旧记录
            if (listView1 != null && listView1.Items.Count > 0) { listView1.Items.Clear(); }

            //获取本地图片信息显示到列表
            Dictionary<string, int> dicIndex = new Dictionary<string, int>();
            ImageList il = new ImageList();
            string[] imagePaths = null;
            string imagePath = txt_ImagePath.Text.Trim();
            if (!string.IsNullOrWhiteSpace(imagePath))
            {
                if (System.IO.Directory.Exists(imagePath))
                {
                    int index = 0;
                    string fileType = ";.jpg;.jpeg;.png;";
                    imagePaths = System.IO.Directory.GetFiles(imagePath);
                    foreach (string path in imagePaths)
                    {
                        if (fileType.Contains(System.IO.Path.GetExtension(path)))
                        {
                            Image image = Image.FromFile(path);
                            string fileName = System.IO.Path.GetFileNameWithoutExtension(path);

                            il.Images.Add(fileName, image);
                            dicIndex.Add(fileName, index++);
                        }
                    }
                }
            }


            if (il != null && il.Images.Count > 0)
            {
                //列表定义分组
                ListViewGroup[] lvgs = { new ListViewGroup("内地", HorizontalAlignment.Center), 
                                          new ListViewGroup("日韩", HorizontalAlignment.Center),
                                          new ListViewGroup("欧美", HorizontalAlignment.Center),
                                          new ListViewGroup("其他", HorizontalAlignment.Center)};
                listView1.Groups.AddRange(lvgs);

                for (int i = 0, counti = il.Images.Count; i < counti; i++)
                {
                    string itemText = il.Images.Keys[i];
                    //定义列表展示项
                    ListViewItem lvi = new ListViewItem();
                    lvi.Text = itemText;
                    lvi.ImageIndex = dicIndex[itemText];
                    lvi.StateImageIndex = dicIndex[itemText];

                    foreach (ListViewGroup lvg in lvgs)
                    {
                        if (itemText.Contains(lvg.Header))
                        {
                            //给展示项分组
                            lvi.Group = lvg;
                            lvi.ToolTipText = string.Format("【{0}】{1}", lvg.Header, itemText);
                            break;
                        }
                    }
                    if (string.IsNullOrWhiteSpace(lvi.ToolTipText))
                    {
                        //文件名未按标准格式命名时统一分到一组展示
                        lvi.Group = lvgs[lvgs.Length - 1];
                        lvi.ToolTipText = string.Format("【{0}】{1}", lvgs[lvgs.Length - 1].Header, itemText);
                    }

                    //添加项
                    listView1.Items.Add(lvi);

                }

                //设置项图片展示大小与像素
                il.ImageSize = new Size(60, 60);
                il.ColorDepth = ColorDepth.Depth32Bit;

                //将项与列表绑定并设置部分属性控制列表展示及操作的类型
                listView1.LargeImageList = il;
                listView1.SmallImageList = il;
                listView1.LabelEdit = true;
                listView1.ShowItemToolTips = true;
                listView1.View = View.LargeIcon;

            }
        }

 

posted @ 2019-07-11 11:41  BoneMan  阅读(7454)  评论(0编辑  收藏  举报