ListView 提供了大量可灵活设置外观和行为的属性。View 属性允许您更改项的显示方式。LargeImageList、SmallImageList 和 StateImageList 属性允许您指定包含为项显示的图像的 ImageList 对象;并且,就 StateImageList 属性而言,当 CheckBoxes 属性设置为 true 时,它允许您指定所显示的复选框。要确定选中了哪些项,可使用 CheckedItems 属性来访问 ListView.CheckedListViewItemCollection 集合。Columns 属性允许访问 ListView.ColumnHeaderCollection,它存储了当控件的 View 属性设置为 View.Details 时显示的列标题。通过 Items 属性,可以在 ListView 中添加和移除项。Items 属性允许您访问控件的 ListView.ListViewItemCollection,它提供在控件中操作项的方法。如果需要允许用户编辑项的文本,可使用 LabelEdit 属性。当控件包含大量的项时,用户在经过排序的列表中查看这些项通常会更加容易。您可以使用 Sorting 属性按字母顺序对项进行排序。当 ListView 控件的 View 属性设置为 View.Details 时,将使用该控件的许多属性。AllowColumnReorder 属性允许 ListView 控件的用户在运行时重新配置列的顺序。FullRowSelect 属性允许选择项及其子项(而不仅仅是项)。要在详细资料视图中显示网格线以标识 ListView 中的项及其子项的边界,可使用 GridLines 属性。HeaderStyle 属性允许您指定要显示的列标题的类型。除了可用于 ListView 控件的许多属性外,应用程序还可以使用方法和事件来为 ListView 提供附加功能。BeginUpdate 和 EndUpdate 方法允许您为 ListView 添加许多项,而且在每次添加项时并不显示控件的重新绘制,这样就提高了性能。如果 ListView 控件显示的是项和子项,您也许会需要提供用户用鼠标右键单击子项时的功能。要确定其子项被单击的项,可使用 GetItemAt 方法。在用户编辑项后对它们执行验证时,您也许需要向用户显示要更改的特定项。可以调用 EnsureVisible 方法来确保特定项位于控件的可视区域中。如果 LabelEdit 属性设置为 true,则可以执行如下的类似任务:通过为 BeforeLabelEdit 和 AfterLabelEdit 事件创建事件处理程序,在文本更改前后对所编辑的文本进行验证。要执行打开文件或显示对话框来编辑 ListView 中显示的项这样的任务,可以为 ItemActivate 事件创建事件处理程序。如果允许在用户单击列标题时对 ListView 中的项进行排序,则可以为 ColumnClick 事件创建事件处理程序以执行排序操作。当 CheckBoxes 属性设置为 true 时,您可以通过处理 ItemCheck 事件来确定项的选中状态何时发生更改。

解决方案 »

  1.   

    呵呵,楼上给的是ListView的简介,我要的是如何重绘ListView的Items,请看看我给的例子图片。
    http://www.gxbcts.com/suz/main1.jpg
    http://www.gxbcts.com/suz/main2.jpg
      

  2.   

    这些图片有什么特别的地方?先用
    ListView.GridLines 属性  
    获取或设置一个值,该值指示:在包含控件中项及其子项的行和列之间是否显示网格线。去掉网格线,然后不就是每个ITEM对应一个图标?
    用LargeImageList 和 SmallImageList 属性来保存对应ITEM的图标,怎么样?还有问题,发短消息给我,一起讨论讨论
      

  3.   

    使用BackgroundImage设置背景使用 BorderStyle 属性来更改 ListView 控件的边框样式,以匹配窗体上其他控件的边框样式设置。例如,如果窗体上其他控件均不显示边框,则可以将 ListView 控件的 BorderStyle 属性设置为 BorderStyle.None 以和其他控件保持一致。如何?
      

  4.   

    我想在选中的Item周围画一个矩形,图标画在矩形中间啊。
      

  5.   

    选中的item背景默认是蓝色,怎么改成其他颜色?
      

  6.   

    在选中ITEM时,将他的
    ListViewItem.BackColor设置一下,就可以改成其他颜色
      

  7.   

    如果你一定要重画的话,个人建议:
    listview的
    Invalidated事件(从 Control 继承) 在控件的显示需要重绘时发生。 InvokePaintBackground(从 Control 继承) 为指定的控件引发 PaintBackground 事件。 OnPaint(从 Control 继承) 引发 Paint 事件。 OnPaintBackground(从 Control 继承) 绘制控件的背景。 WndProc 已重写。参见 Control.WndProc。 (这里你可以获取所有的消息)
    //特别注意Control.Paint 事件  [C#]请参见
    Control 类 | Control 成员 | System.Windows.Forms 命名空间 | OnPaint 
    要求
    平台: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows .NET Server family
    语言
    C#C++JScriptVisual Basic全部显示
    在重绘控件时发生。[Visual Basic]
    Public Event Paint As PaintEventHandler
    [C#]
    public event PaintEventHandler Paint;
    [C++]
    public: __event PaintEventHandler* Paint;
    [JScript] 在 JScript 中,可以处理由某个类定义的事件,但不能定义自己的事件。事件数据
    事件处理程序接收一个 PaintEventArgs 类型的参数,它包含与此事件相关的数据。下列 PaintEventArgs 属性提供特定于此事件的信息。属性 说明 
    ClipRectangle 指示将在其中进行绘画的矩形。此属性为只读。 
    Graphics 指示用于绘画的 Graphics 对象。此属性为只读。 备注
    有关处理事件的更多信息,请参阅使用事件。