C#学习记录(36)windows应用程序基础之ListView控件

         列表视图通常用于显示数据,用户可以对这些数据和显示方式进行某些控制。listview可以把包含在

控件中的数据显示为列和行(像网格那样),或者显示为一列,或者显示为图标表示。

        listview的属性如下所示:

        Activation         使用这个属性,可以控制用户在列表视图中激活选项的方式。可能的值如下:
                        Standard:这个设置是用户为自己的计算机选择的值
                        OneClick:单击一个选项,激活它
                        TwoClick:双击一个选项,激活它
        AllowColumnReorder     如果把这个属性设置为true,就允许用户改变列表视图中列的顺序。如果这么做,就应确

保即使改变了列的属性顺序,填充列表视图的例程也能正确插入选项。

        CheckBoxes     如果把这个属性设置为true,列表视图中的每个选项会在其左边显示一个复选框,只有在

View 属性是Details 或List 时,这个属性才有意义。

        Columns         列表视图可以包含列,通过这个属性可以访问列集合,通过该集合,可以增加或删除列

        GridLines         把这个属性设置为true,则列表视图会在行和列之间绘制网格线。只有View 属性为Details

时,这个属性才有意义。

        Items               列表视图中的选项集合

        MultiSelect     这个属性设置为true 时,用户可以选择多个选项

        Scrollable       这个属性设置为true 时,就显示滚动条

        LargeImageList     这个属性包含ImageList,它包含大图像,这些图像可以在View 属性为LargeIcon时使用

        SmallImageList     当View 属性为SmallIcon 时,这个属性包含了ImageList,其中包含了要使用的图像

        View     列表视图可以用4 种不同的基本模式显示其选项:
                    . LargeIcon:所有选项都在其旁边显示一个大图标(32×32)和一个标签
                    . SmallIcon:所有选项都在其旁边显示一个小图标(16×16)和一个标签
                    . List:只显示一列。该列可以包含一个图标和一个标签
                    . Details:可以显示任意数量的列。只有第一列可以包含图标
                    . Tile:(只用于Windows XP 和较新的Windows 平台)显示一个大图标和一个标签,在图标的右边显示子项信息

    

        二.ListView控件的方法

        BeginUpdate()     调用这个方法,将告诉列表视图停止更新,直到调用EndUpdate()为止。当一次插入多个选项时
使用这个方法很有用,因为它会禁止视图闪烁,大大提高速度
        Clear()                 彻底清除列表视图,删除所有的选项和列
        EndUpdate()         在调用BeginUpdate 之后调用这个方法。在调用这个方法时,列表视图会显示其所有选项
        EnsureVisible()     在调用这个方法时,列表视图会滚动,以显示指定索引的选项
        GetItemAt()          返回列表视图中位于x,y 位置的选项


        三.ListView控件的事件

        AfterLabelEdit            在编辑了标签后,引发该事件
        BeforeLabelEdit         在用户开始编辑标签前,引发该事件
        ColumnClick              在单击一个列时,引发该事件
        ItemActivate              在激活一个选项时,引发该事件


        四,组成部分

        ListViewItem     包含要显示的信息,如文本和图标的索引。

        ListViewItems 对象有一个SubItems 属性,其中包含另一个类ListViewSubItem 的实例。如果ListView 控件处于Details 或Tile 模式下,这些子选项就会显示出来。每个子选项表示列表视图中的一列。子选项和主选项之间的区别是,子选项不能显示图标。

        通过Items 集合把ListViewItems 添加到ListView 中,通过ListViewItem 上的SubItems 集合把ListViewSubItems 添加到ListViewItem 中。

        

        列标题

        当ListView 控件处于Details 模式下时,ColumnHeaders 为要显示的列提供一个标题。


        ImageList控件

        ImageList 控件提供了一个集合,可以用于存储在窗体的其他控件中使用的图像。可以在图像列表中存储任意大小的图像,但在每个控件中,每个图像的大小必须相同。

        

        五.实例

        

        添加如上所示的按钮控件。

        Listview控件中添加各种属性:

        Columns属性中添加三个列标题,“名称、类型和大小”;

        Item属性中添加6个ListviewItem项目;

        LargeImageList属性添加6张64*64的大图片

        SmallImageList属性添加6张16*16的小图片

        View属性选择Details(这个属性无所谓)

        添加按钮事件

        private void button5_Click(object sender, EventArgs e)
        {
                browserlistView.View = View.Details;    ///设置列表视图的格式为详细列表
        }

        View.List :列表格式

        View.SmallIcon:小图标显示

        View.LargeIcon:大图标显示

        View.Tile:平铺格式

        添加单击各个项目时发生的事件响应函数:

        private void browserlistView_ItemActivate(object sender, EventArgs e)
        {
            string mydoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            string mymusic = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
            string mypicture = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
            switch (browserlistView.SelectedIndices[0])
            {
                case 0: System.Diagnostics.Process.Start(mydoc); break;    //打开文档
                case 1: System.Diagnostics.Process.Start(mymusic); break;
                case 2: System.Diagnostics.Process.Start(mypicture); break;
                case 3: System.Diagnostics.Process.Start("IExplore"); break;//打开浏览器
                case 4: System.Diagnostics.Process.Start("calc"); break;
                case 5: System.Diagnostics.Process.Start("Notepad"); break;
                default: break;
            }

        }

        添加单击列事件

        private void browserlistView_ColumnClick(object sender, ColumnClickEventArgs e)
        {
            if (browserlistView.Sorting == SortOrder.None)    //指定列表中的排列顺序
                browserlistView.Sorting = SortOrder.Ascending;
            else if (browserlistView.Sorting == SortOrder.Ascending)
                browserlistView.Sorting = SortOrder.Descending;
            else if (browserlistView.Sorting == SortOrder.Descending)
                browserlistView.Sorting = SortOrder.Ascending;
        }

        

        

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值