已经下载到 下载 F:\SoftWare-new\XP-table


这是一个开源控件,大家可以自己扩展


用DEMO中的DLL或自己用源代码生成都可以

1,在工具箱中添加XPTable.dll,方法:打开VS2008--->点击'工具箱'--->选中一项,如:'常规'这项--->单击右键--->在弹出的菜 单中选'选择项'--->在弹出的窗口中选择'浏览'--->找到'XPTable.dll'这个文件 --->按确定就添加上了,还是老方法

XPTable包含下面的组件:

1. Table,

2. ColumnModel 和它的 Columns,

3. TableModel 和它的 Row 和 Cell,

4. Renderer

5. Editor

 

然后,拖动Table, ColumnModel 和 TableModel到Form上,设置Table的ColumnModel 和 TableModel属性,添加Column到ColumnModel,添加Row 和 Cell到TableModel.

或者,直接使用代码设定:



C# Code复制内容到剪贴板


  1. table1.ColumnModel = columnModel1;  
  2.         table1.TableModel = tableModel1;  
  3.         // add some Columns to the ColumnModel  
  4.         columnModel1.Columns.Add(new TextColumn("Text"));  
  5.         columnModel1.Columns.Add(new CheckBoxColumn("CheckBox"));  
  6.         columnModel1.Columns.Add(new ButtonColumn("Button"));  
  7.         // add some Rows and Cells to the TableModel  
  8.         tableModel1.Rows.Add(new Row());  
  9.         tableModel1.Rows[0].Cells.Add(new Cell("Text 1"));  
  10.         tableModel1.Rows[0].Cells.Add(new Cell("CheckBox 1", true));  
  11.         tableModel1.Rows[0].Cells.Add(new Cell("Button 1"));  
  12.         tableModel1.Rows.Add(new Row());  
  13.         tableModel1.Rows[1].Cells.Add(new Cell("Text 2"));  
  14.         tableModel1.Rows[1].Cells.Add(new Cell("CheckBox 2", false));  
  15.         tableModel1.Rows[1].Cells.Add(new Cell("Button 2"));  


Table是一个简单的对象,事实上,它并不知道如何显示数据。而是,分别使用ColumnModel 和TableModel 控制列和单元等等。 Table的主要角色是管理绘制操作,传递事件给Renderer 和 Editor,以控制其行为。


ColumnModel


ColumnModel包含一个列的集合,这些列会在Table上显示。它会跟踪创建到指定列的CellRenderer 或 CellEditor。



TableModel


它包含即将显示的Row集合。



Renderers


就象上面说的那样,Table 并不知道如何绘制单元或列头。想法,它使用称为Renderers 的对象绘制这些。


Table 使用两个不同类型的Render,一个是Renderers: CellRenderer 绘制Cell,还一个HeaderRenderer绘制Column Header。


CellRenderers


下面是所有XPTable提供的CellRenderer:

* ICellRenderer - Exposes common methods provided by Cell renderers.

* CellRenderer - Base class for all Cell renderers.

* TextCellRenderer - A CellRenderer that draws Cell contents as strings.

* ButtonCellRenderer - A CellRenderer that draws Cell contents as Buttons.

* CheckBoxCellRenderer - A CellRenderer that draws Cell contents as CheckBoxes.

* ImageCellRenderer - A CellRenderer that draws Cell contents as Images.

* NumberCellRenderer - A CellRenderer that draws Cell contents as numbers.

* ProgressBarCellRenderer - A CellRenderer that draws Cell contents as a ProgressBar.

* DropDownCellRenderer - Base class for CellRenderers that draw Cell contents like ComboBoxes.

* ComboBoxCellRenderer - A CellRenderer that draws Cell contents as a ComboBox.

* ColorCellRenderer - A CellRenderer that draws Cell contents as Colors.

* DateTimeCellRenderer - A CellRenderer that draws Cell contents as a DateTime.

上面的代码可以完成一个小实例

图片 

可以下载源代码和DEMO看一下