制作类似DataGrid自定义控件

首先看一下.net自带的DataGrid,想想如何应该怎样才能实现那样的展现形式。

  1)需要以网格形式显示内容。

  2)网格的宽度、高度可以定义。

  3)可以显示滚动条。

  4)单击可以选中某个单元格。

当然以上只是简单的功能描述,DataGrid包含的功能远远大于这些。

那如果让我们实现以上四点,该怎么做呢?这里面我们提到一个概念叫文档视图。意思就是用户界面中显示的数据不直接放置到控件代码中,而按照逻辑层次关系建立一种文档对象模型,使用一个个对象映射到要显示的数据中的每一部分。说白了类似于WPF里面的数据绑定。

  依照这种方式设计:我们可以构建类似Cell-->Row-->Table的文档模型映射到控件的表格中去,这样刚好可以满足需要。最终的设计结果如图所示。

 设计部分: 

      1)按照这样的设计思路,我们先建立如下的三个对象类。

 

    /// <summary>
    /// 单元格对象
    /// </summary>
    [Serializable]
    public class DataCell
    {
      
    }
   public class DataRowArea:System.Collections.CollectionBase
    {
      
    }
public class DataDocument:System.Collections.CollectionBase
    {
      
    }

他们之间的结构关系。各位应该很清楚。

 2)接下来开始创建自定义控件CellViewControl,定义行高RowHeight,网格颜色,背景色,文档属性Document。

 3)填充数据。

 4)绘制用户界面。

 5)添加鼠标事件。

 

posted @ 2015-03-24 22:00  小羽信息  阅读(300)  评论(0编辑  收藏  举报