ObjectListView控件介绍及C# Demo实现

1 介绍

前两天在用Listview做数据显示时,希望在listview中的多列显示图片,经过一番搜索后发现.Net自带的ListView其实只能在各行的第一列显示图片。后来google时看到网友有提及ObjectListView这个开源控件,一查发现确实很强大,于是决定秉承拿来主义的思想,学习使用之。

2 背景

ObjectListView使用C#语言对.Net框架下的ListView进行了封装,使ListView的用法更简单、显示内容更丰富完美。下图是一个简单的ObjectListView的例子:

贴图的效果是暴力的、强大的,无需多言,与.Net原生的ListView相比,高下立见。

ObjectListView的官网:http://objectlistview.sourceforge.net/cs/index.html .

3 代码示例

相信,对于大多数处于搬运工阶段的Coder来说(很惭愧,鄙人还处于这阶段),能用的代码Demo才是王道!

Step 1: ObjectListView库的引入。有加工程依赖及DLL引用两种方式,这里选择引入DLL的方式。

在官网下载ObjectListView.dll,然后新建WinForm工程,在Reference->Add Reference->选择刚下载的DLL。然后需要注意的一个操作是需要更改当前工程的项目属性: 右键你所见的工程,选择属性:

图中的Target framework开始默认是.Net Framework 4 Client Profile, 将其更改为.Net Framework 4. 否则在将ObjectListView控件放至Form上编译时会报如下错误:

Step 2: ObjectListView控件的使用。

  1) 在工具栏显示ObjectListView控件:

    在Toolbox的General Tab下面邮件选择 Choose Items… -> .Net Framework Components选项卡中,选择Browser选择刚加入的ObjectListView.dll,确定后在 General选项卡下面或All Windows Forms下即可看见objectlistview等几个控件。

  2) 添加用户数据显示的类Car.cs.  其内容如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyObjectListviewDemo
{
    class Car
    {
        private string channel;
        private string hasCar;
        private string node;

        //Public Properties to show in the objectlistview columns.
        public string Channel { get { return channel; } set { channel = value; } }
        public string HasCar { get { return hasCar; } set { hasCar = value; } }
        public string Node { get { return node; } set { node = value; } }

        public Car(string channel, string hasCar, string node) {
            this.channel = channel;
            this.hasCar = hasCar;
            this.node = node;
        }

        public static List<Car> carList = new List<Car>();

        public static List<Car> GetCarList() {
            if (carList.Count == 0)
                carList = Car.initCarList();
            return carList;
        }

        private static List<Car> initCarList() {
            List<Car> list = new List<Car>();
            list.Add(new Car("1", "no", "001"));
            list.Add(new Car("2", "yes", "002"));
            list.Add(new Car("3", "yes", "003"));
            return list;
        }
    }
}

  3) 在Form上拖入一个ObjectListView控件、一个imageList控件:    如图:点击ObjectListview右上角的三角形,将其View设置Details,Samll ImageList设置为加入的imageList1空间。

    然后单击Edit Columns…编辑列:点击Add加入三个Column,在右边的属性设置中,将Text设置为列头显示的文字,将AspectName设置为Car类中对应的Public属性的值。

    设置要显示的可选择的图片,设置imagelist的collection.    在Form上右击imageList空间进入属性设置,点击Images: Collection添加你要显示的图片,如图。

  4)   在Form.cs中进行数据绑定:其具体代码如下:

     

 private void Form1_Load(object sender, EventArgs e)
        {
            this.olvColumn2.ImageGetter = new BrightIdeasSoftware.ImageGetterDelegate(this.ShowCarImage);
            this.objectListView1.SetObjects(Car.GetCarList());
        }

        private object ShowCarImage(object rowObject) {
            Car car = (Car)rowObject;
            if (car.HasCar == "yes")
            {
                return "hascar.png";
            }
            else {
                return "nocar.png";
             }
        }

  5) 编译运行得以下结果:

  可见,在第二行已经能够显示图片了,本篇目的已达到,收工。

本Demo完整示例代码下载:MyObjectListView.zip

4 讨论

本例中,只使用了最基本的ObjectListView控件属性,主要从本人的实际需要出发而写的Demo,更多地介绍请参见ObjectListView官网。

5 版权

在注明出处的情况下,可自由进行复制传播。

转载请注明出处:http://www.cnblogs.com/Rayblog/p/4542688.html

6 关于作者

Ray Lei,正处于积累学习阶段的.Net平台开发者,同时研究关注移动开发技术。

时间: 2024-10-13 15:59:04

ObjectListView控件介绍及C# Demo实现的相关文章

HTML 基础控件介绍

HTML 基础控件介绍 主要介绍 input.select.textarea.label.fieldset.ul.ol.li等标签 目录 1. <input>标签:主要用于收集用户信息,可根据不同的type属性值,拥有多种形式. 2. <select>标签:可创建单选或多选菜单,类似于winform的combox或listbox. 3. <textarea>标签:多行文本区域. 4. <label>标签:相当于一个展示文本框. 5. <fieldset

Android控件介绍

Android控件介绍 多选按钮(CheckBox) CheckBox有两个常用的事件,OnClickListener事件和OnClickChangeListener事件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_w

amCharts 金融图表股票走势K线图控件介绍

amCharts控件股票走势图的主要目的是为了显示金融图表,但它可以用于任何日期(时间)为基础的数据可视化. 股票走势图,是一个功能强大的应用程序,让你忘了最枯燥的部分构建复杂的统计系统.它具有内置的期间和数据集选择工具,并能较长组数据.这使您可以向下钻取图表不用任何额外的编码,只使用一个数据文件.单击"最大"按钮下面的图表,你会发现该图表显示月度数据.点击"1月"的按钮,你会看到,现在的图表显示每天的数据. 主要特点: 支持线,柱,烛台,OHLC,步线的图表类型.

SharePoint统计图表控件Nevron Chart for SharePoint控件介绍

Nevron Chart for SharePoint是一个先进的图表Web部件,其能为您的SharePoint站点提供一整套的2D和3D图表类型,高度可自定义的轴,先进的数据分析功能,严密的数据集成和无与伦比的视觉效果.其组合了业内领先的Nevron Charting engine for ASP.NET以及Nevron Pivot Data Aggregation engine.这使得用户能在SharePoint环境中直观的完成复杂的透视图表的创建. 主要功能: 支持SharePoint S

WPF Step By Step 控件介绍

WPF Step By Step 控件介绍 回顾 上一篇,我们主要讨论了WPF的几个重点的基本知识的介绍,本篇,我们将会简单的介绍几个基本控件的简单用法,本文会举几个项目中的具体的例子,结合这些 例子,希望我们可以对WPF的掌握会更深刻.本文涉及的内容可能较多.请大家慢慢看看.错误之处,还请指出. 本文大纲 1.基本控件介绍与用法. 基本控件介绍与用法 文本控件 Label控件 label控件:一般用户描述性文字显示. 在Label控件使用时,一般给予用户提示.用法上没有什么很特殊的,label

Barcode Professional for ASP.NET ASP.NET条码生成和打印功控件介绍

Barcode Professional for ASP.NET是最灵活和强大的.NET组件(.NET DLL 类库),它让您轻松地添加先进的条码生成和打印功能到您的ASP.NET Web解决方案(包括ASP.NET Mobile Web站点). 具体功能: Neodynamic Barcode Professional for ASP.NET是最灵活和强大的.NET组件(.NET DLL 类库),它让您轻松地添加先进的条码生成和打印功能到您的ASP.NET Web解决方案(包括ASP.NET

Essential HTMLUI 浏览器控件介绍及下载

Essential HTMLUIfor Windows Forms是一款WinForm控件用于呈现HTML,功能很像一个Web浏览器,支持各种各样的HTML标签,可以显示丰富的HTML文档,支持导出和打印. 具体功能: HTMLUI是一款完全与浏览器独立的控件,支持以URL的形式打开HTML 支持从用户驱动器路里加载任何HTML页面 支持使用图片代替文本用于连接到其他文件 支持以流的形式加载HTML文档 支持各种各样的HTML标签,格式化相关的标签 支持外部的.内在的.内嵌的样式,支持在运行时添

Essential BI PivotGrid可扩展的数据透视表控件介绍及下载

Essential BI PivotGrid是一款强大的可扩展的数据透视表,可用于Silverlight和WPF平台下,和Excel里的数据透视表功能十分相似,用于从大量商业数据中提取重要数据,并对数据进行统计和分组,开发人员可以使用该控件对商业数据进行组织和系统分析.该产品包含在Business Intelligence Edition里. 具体功能: 支持条件格式化,对某些符合条件的单元格进行特别显示 支持导出数据到Excel和Word文档 支持多种数据过滤功能 支持单元格选择,多个单元格选

Android support library支持包常用控件介绍(二)

谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library 支持库,让开发者更容易的实现材料设计的效果.顺便推荐官方的一个图标库:Material Icons 控件名称 NavigationView FloatingActionButton TextInputLayout Snackbar TabLayout AppBarLayout Coordinator