【开源EFW框架】框架中自定义控件GridBoxCard使用实例说明

回《【开源】EFW框架系列文章索引》       

EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0

EFW框架实例源代码下载:http://pan.baidu.com/s/1eQCc69G

在《二十五、EFW框架Winform前端开发之自定义控件》中列出了EFW框架中的强大自定义控件及每个控件的API说明,但是对如何使用这些控件还不是很明白,本章通过实例的方式详细说明GridBoxCard控件的使用方法;

本文要点:

1.实例功能说明

2.控件属性设置

3.编写后台代码

1.实例功能说明

效果图:

制作一个书单在网格中,点击“新增”按钮网格新增空白行,焦点定位在书籍名称列,并弹出下拉书籍目录,可以通过拼音五笔码过滤书籍,回车选定书籍添加到网格中,再选择下一本书籍,如此在网格中生成了一个自定义的书单。

2.控件属性设置

1)将工具栏中的GridBoxCard控件拖入窗体,并设置好网格的列;其中ReadOnly属性为false,打开Columns属性中“书籍名称”列的ReadOnly设置为false,其他的几列都设置为true;

2)设置GridBoxCard控件的一些自定义属性,特别是SelectionCards属性,点击添加一个成员,如果有多列需要绑定下拉网格,那么这里就要添加多个成员,此处只需要将“书籍名称“这列 绑定下拉网格;

3)需要设置DataGridViewSelectionCard成员的属性,其中BindColumnIndex为列索引,”书籍名称“此列的索引是1,所以此处设置为1。其中CardColumn属性指定下拉网格显示的列”code|编码|50,name|名称|auto“表示显示两列”编码“和”名称“。其中QueryFieldsString属性指定过滤网格数据的列名”name,pym,wbm“表示可以通过名称、拼音码、五笔码三个字段进行过滤书籍;

3.编写后台代码

1)构建数据源“书籍字典”

 //数据源
        private DataTable GetData()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("code");
            dt.Columns.Add("name");
            dt.Columns.Add("pym");
            dt.Columns.Add("wbm");
            dt.Columns.Add("price");
            dt.Columns.Add("buydate");

            dt.Rows.Add("01", "人月神话", "rysh", "rysh", "12.00", "2014-02-21");
            dt.Rows.Add("02", "浪潮之巅", "lczd", "lczd", "12.00", "2014-03-11");
            dt.Rows.Add("03", "人件", "rj", "rj", "12.00", "2014-08-01");
            dt.Rows.Add("04", "面向对象设计", "mxdxsj", "mxdxsj", "12.00", "2014-12-01");
            dt.Rows.Add("05", "架构之美", "jgzm", "jzzm", "12.00", "2014-12-21");
            dt.Rows.Add("06", "设计原本", "sjyb", "sjyb", "12.00", "2014-05-21");
            dt.Rows.Add("07", "敏捷项目管理", "mjxmgl", "mjxmgl", "12.00", "2014-01-11");
            dt.Rows.Add("08", "代码之美", "dmzm", "dmzm", "12.00", "2014-04-21");
            dt.Rows.Add("09", "大道至简", "dzzj", "ddzj", "12.00", "2014-01-01");
            dt.Rows.Add("10", "走出软件作坊", "zcrjzh", "zcfjzh", "22.00", "2014-02-11");

            return dt;
        }

2)控件绑定数据源,分别给控件的DataSource和控件列的下拉网格绑定数据源

private void Form1_Load(object sender, EventArgs e)
        {
            DataTable dtsource = GetData().Clone();
            //绑定数据源
            gridBoxCard1.DataSource = dtsource;
            //绑定下拉网格数据源
            gridBoxCard1.BindSelectionCardDataSource(0, GetData().Copy());
        }

3)点击“新增”开始编辑网格数据

//新增
        private void button1_Click(object sender, EventArgs e)
        {
            gridBoxCard1.AddRow();
        }

4)选定下拉网格数据赋值给网格控件

//选定下拉网格行,数据赋值
        private void gridBoxCard1_SelectCardRowSelected(object SelectedValue, ref bool stop, ref int customNextColumnIndex)
        {
            DataTable dt = (DataTable)this.gridBoxCard1.DataSource;
            int rowindex = gridBoxCard1.CurrentCell.RowIndex;
            dt.Rows[rowindex]["code"] = ((DataRow)SelectedValue)["code"];
            dt.Rows[rowindex]["name"] = ((DataRow)SelectedValue)["name"];
            dt.Rows[rowindex]["price"] = ((DataRow)SelectedValue)["price"];
            dt.Rows[rowindex]["buydate"] = ((DataRow)SelectedValue)["buydate"];
        }

      总结:此控件适合于直接在网格中编辑数据的功能,下拉网格数据来源字典数据,这样用户操作起来非常直观;控件简化了对网格操作控制的代码,特别是列绑定下拉网格不需要过多代码,只要设置几个属性就行了;

时间: 2024-07-30 15:05:24

【开源EFW框架】框架中自定义控件GridBoxCard使用实例说明的相关文章

开源物联网通讯框架ServerSuperIO,成功移植到Windows10 IOT,在物联网和集成系统建设中降低成本。附:“物联网”交流大纲

[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 一.概述 经过一个多月晚上的时间,终于把开源物联网通讯框架ServerSuperIO成功移植到Windows10 IOT上,暂时全名:ServerSuperIO.WinIOT(以后可能还会移植到Ubuntu上).以后可以把ServerSuperIO框架应用到嵌入式设备上,移植的成功具有标志性意义,意味着软件和硬件的结合,软硬的结合才具有更强的生命力.为什么我特别愿意干这件事呢?源于我对以前工作的总结,如下图: 二.如果利

DICOM:开源DICOM服务框架DCM4CHE 构建

背景: 前一篇博文DICOM:开源DICOM服务框架DCM4CHE 安装中介绍了一款开源DICOM服务框架DCM4CHE,对于开源项目学习的流程是先下载二进制可执行包安装,然后使用测试.在熟悉了大致的功能服务后,从官网下载源代码进行本地构建(Build),进而从根本上了解开源项目的底层框架设计,为后续修复.扩展做准备.本博文是继DCM4CHE安装后的续篇,讲解如何在本地构建DCM4CHE开源项目,文中尽量做到全面,但是由于刚开始接触J2EE领域,且多半都是自学,因此博文中还留有部分未解问题,如有

玩转Google开源C++单元测试框架Google Test系列(gtest)之一 初识gtest

进入文件夹执行: ./configure make make install 完毕即可正常使用: (1)包含include目录 -I/root/scp/gtest/gtest-1.3.0: (2)包含lib中的动态链接库:-lgtest -L/root/scp/gtest/gtest-1.3.0/lib 示例代码: [cpp] view plaincopy #include <gtest/gtest.h> int Foo(int a, int b) { if (a == 0 || b == 0

VMC INJECTION(开源JAVA模板框架)

VMC Injection是一个开源Java模板框架,它是由vmcreative公司开发,并在最近刚刚发布的.VMC Injection支持任何Java数据结构,(例如:JDBBC,POJO,HashMap等),并且VMC Injection可以很容易的将这些Java数据结构注入到文本模板中(HTML/XML等模板) VMC Injection(Java模板框架)被用于vmcreateive公司的很多商业项目中,如在web应用程序中,借助Servlet和VMC Injection生成动态的网页,

【开源】OSharp框架解说系列(1):总体设计

〇.前言 哈,距离前一个系列<MVC实用构架设计>的烂尾篇(2013年9月1日)已经跨了两个年头了,今天是2015年1月9日,日期已经相映,让我们开启新的航程吧. 前一个系列讲的主要是我对架构设计的理解以及怎样用好EntityFramework的一些想法,在技术细节上并没有太多的考究.不幸的是,不少同学把这个架构当作框架来用了,里边留的很多坑,坑苦了很多人,真是误人子弟,深表愧疚.于是重新整理代码,整理思路,鼓捣出了这个我们将要详解的开源框架:OSharp.这次,我们真的深入地说框架了,而不是

【开源】OSharp框架解说系列(3):扩展方法

〇.前言 扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异. 最常见的扩展方法是 LINQ 标准查询运算符,它将查询功能添加到现有的 System.Collections.IEnumerable 和 System.Collections.Generic.

【开源】OSharp框架解说系列(2.1):EasyUI的后台界面搭建及极致重构

〇.前言 要了解一个东西长什么样,至少得让我们能看到,才能提出针对性的见解.所以,为了言之有物,而不是凭空漫谈,我们先从UI说起,后台管理页面的UI我们将使用应用比较普遍的easyui框架. 以前在用easyui的时候,每个页面都得从0做起,或者不厌其烦地由以前的页面通过“复制-粘贴”的方式来修改,久页久之,就会造成页面庞大且难以维护.其实,前端的html,javascript代码与后端的代码是一样的,通过一定的组织,把重复的代码抽离出来,同样也通过达到很好的复用率.而MVC的天生的Layout

Python 开源异步并发框架的未来(转)

Python 开源异步并发框架的未来 fantix 1.1k 2014年04月16日 发布 推荐 4 推荐 收藏 31 收藏,8.9k 浏览 呵呵,这个标题有点大,其实只是想从零开始介绍一下异步的基础,以及 Python 开源异步并发框架的发展和互操作性. 另外,这是我在 OSTC 2014 做的一个 20140330-OSTC-分论坛1王川 http://v.youku.com/v_show/id_XNjk2ODI0ODQ4.html ,幻灯片在这里,欢迎拍砖. 开源 Python 是开源的,

开源图计算框架GraphLab介绍

GraphLab介绍 GraphLab 是由CMU(卡内基梅隆大学)的Select 实验室在2010 年提出的一个基于图像处理模型的开源图计算框架,框架使用C++语言开发实现.该框架是面向机器学习(ML)的流处理并行计算框架,可以运行在多处理机的单机系统.集群或是亚马逊的EC2 等多种环境下.框架的设计目标是,像MapReduce一样高度抽象,可以高效执行与机器学习相关的.具有稀疏的计算依赖特性的迭代性算法,并且保证计算过程中数据的高度一致性和高效的并行计算性能.该框架最初是为处理大规模机器学习