NET新手指南:轻松自定义DataGridView控件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.NET新手指南:轻松自定义DataGridView控件
.NET DataGridView是一个便于使用的数据绑定控件。本文为.NET新手介绍了如何使用.NET配置向导VB Express自定义DataGridView控件。只需非常简单的修改以及一两行代码,便可以轻松实现交替颜色行,自定义排序功能以及显示编辑行。这样一个既可以浏览数据又可以编辑数据的窗体非常实用。
本文的目标读者是.NET新手。首先讲述如何创建一个新连接,然后讲述如何自定义结果控件,使用Visual Basic Express(VB Express)配置向导,本文将描述如何填充DataGridView控件,然后按照以下步骤进行提高:
1、行的显示颜色交替,构成一个绿色条效果;
2、禁用掉DataGridView内置的单列排序功能;
3、执行这个窗体时显示编辑行。
开始
VB Express提供了许多方法检索和操作外部数据,例如,只需要运行VB Express的配置向导就可以建立一个到MS Access 示例数据库Northwind.mdb中Customers的连接:
1、启动VB Express,然后在标准工具栏上点击新建项目按钮,在弹出的对话框中选择Windows Form Application;
2、在名称控件处输入一个有意义的名字,点击确定按钮;
3、点击解决方案资源管理器右下角的数据源标签,如果没有看到这个标签,从“数据”菜单中选择显示数据源即可;
4、点击新建数据源按钮,启动新建数据源配置向导;
5、点击下一步,数据库选项保持默认设置;
6、在下一个面板中点击新建连接;
7、在弹出的新建连接对话框中,点击修改,从弹出的修改数据源对话框中选择Access数据库文件,然后点击确定按钮;
8、在新建连接对话框中点击浏览,找到Northwind.mdb的位置(在Office目录的Samples文件夹下),然后点击确定按钮;
9、点击测试连接,然后点击确定按钮清除确认消息;
10、如果连接工作正常,点击确定返回向导窗口,然后点击下一步继续;
11、VB Express会询问你是否要拷贝数据库,如果你选择“是”,将会把整个数据库拷贝到你的项目下,在这个例子中,我们选择“否”;
12、接下来的面板中让你将配置信息保存到配置文件中,默认是要保存,点击下一步即可(向导会检索数据库对象,并在源文件中显示它们,在这里你可以识别一下将要在.Net项目中检索和操作的数据);
13、点击“+”号展开表节点,选中Customers表,保留默认的NorthwindDataSet,VB Express的数据集;
14、点击完成,VB Express将会检索指定的数据。
创建好连接后,还需要一个窗体来显示数据,请跟着我做:
1、点击数据源标签;
2、点击Form1标签,然后从数据源标签拖动Customers数据集到窗体设计器中的Form1上,VB Express将会产生一个DataGridView控件并自动命名,图1显示了结果窗体和窗体设计器中的网格。
窗体和窗体设计器中的网格:配置向导创建的可以显示数据的控件
3、从文件菜单中选择保存所有,然后点击保存按钮。
至此,你已经有一个来自Northwind数据库的数据集,和一个显示该数据的DataGridView控件及控件所在的窗体,所有需要做的就是运行一下向导。
行显示颜色交替
第一个增强是,使用向导创建的控件可以通过修改行的颜色提高易读性,使用DataGridView时,可以很容易修改属性:
1、在窗体设计器中,选择DataGridView控件(不要双击,将会打开窗体的代码页);
2、在属性窗口中,打开AlternatingRowsDefaultCellStyle属性;
3、点击BackColor属性的下拉箭头,显示CellStyleBuilder对话框;
4、选择一个与当前颜色不同的颜色(默认是白色),在这个例子中,选择蓝色,如图2所示,然后点击确定按钮。
CellStyleBuilder对话框:选择一个交替的行颜色
5、按F5运行程序,图3显示了使用交替颜色填充的网格控件。
填充好的网格控件:行的颜色在蓝色和白色间交替使用
记住,只设置交替的一行的属性颜色就可以了,不是要设置所有行的属性,如果还想更多一点变化,相应设置BackColor和ForeColor即可。
控制排序顺序
最初,你产生的控件是按表的顺序填充的,因为还没有指定排序顺序,然而,DataGridView是天生就支持排序的,只需要点击标题栏,控件就会以该栏升序排序记录,再点击一次就按降序排序,对于大多数控件而言,在填充控件时你都可以排序数据:
1、在窗体设计器中,选择CustomersBindingSource组件,将会在相应的属性窗口中更新其项目;
2、在窗口的底部,找到sort属性,输入city,如图4所示。
找到Sort,输入City:指定一个排序列
3、按F5运行程序,正如你在图5中所看到的,控件按照City值以升序排序记录。如果想降序排列的话,只需要加上DESC关键词就可以了,即输入City DESC。
控件排序记录:窗体通过City值排序记录
你可能会禁止这个原生态的排序功能,但你需要为每个禁止排序的列编写一小段代码,例如,为了禁止Contact Title列的排序功能,请跟着我做:
1、在设计视图窗体中,从视图菜单选择代码,或按F7;
2、开始输入代码,很快你就会发现智能感应不会显示控件包含的列名,相反,它是按照位置显示列名的,这不是引用列的最佳办法;
3、为了修改DataGridView控件的列的默认名称,必须修改控件本身的Columns集合,在设计视图中,双击网格(不是窗体),你可能需要稍微放大一下窗体,以便准确选中一个网格,当属性标题显示CustomersDataGridView 时,你就可以确定选中的是网格而不是窗体了;
4、定位Columns集合,然后点击Builder按钮,启动编辑列对话框,如图6所示。
点击Builder按钮:查看网格的Columns集合
5、在选择列控件中,选择ContactTitle;
6、在设计区域(右下角),这个控件的Name属性值是DataGridViewTextBoxColumn4,使用一个更有意义的名字替代它,这里我们输入DataGridViewTextBoxContactTitle,如图7所示。对那些不想设置的隐形列,将其Visible 属性设置为false即可。