C#DataGridView控件使用全攻略资料

上传人:f****u 文档编号:128292340 上传时间:2020-04-20 格式:PDF 页数:67 大小:729.19KB
返回 下载 相关 举报
C#DataGridView控件使用全攻略资料_第1页
第1页 / 共67页
C#DataGridView控件使用全攻略资料_第2页
第2页 / 共67页
C#DataGridView控件使用全攻略资料_第3页
第3页 / 共67页
C#DataGridView控件使用全攻略资料_第4页
第4页 / 共67页
C#DataGridView控件使用全攻略资料_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《C#DataGridView控件使用全攻略资料》由会员分享,可在线阅读,更多相关《C#DataGridView控件使用全攻略资料(67页珍藏版)》请在金锄头文库上搜索。

1、DataGridView 控件 doc C DataGridView 控件使用完全攻略 C DataGridView 控件使用完全攻略 DataGridView 是用于 Windows Froms 2 0 的新网格控件 它可以取代先前版本中 DataGrid 控 件 它易于使用并高度可定制 支持很多我们的用户需要的特性 关于本文档 关于本文档 本文档不准备面面俱到地介绍 DataGridView 而是着眼于深入地介绍一些技术点的高级特 性 本文档按逻辑分为 5 个章节 首先是结构和特性的概览 其次是内置的列 单元格类型的介 绍 再次是数据操作相关的内容 然后是主要特性的综述 最后是最佳实践 大

2、部分章节含有一个 Q e Row Cells City Value Redmond e Row Cells PostalCode Value 98052 6399 e Row Cells Region Value NA e Row Cells Country Value USA e Row Cells CustomerID Value NewCustomerId 4 1 3 3 Rows集合与新行的关系集合与新行的关系 新行包含在DataGridView控件的Rows集合中 又因其总是处于最后一行 下面这行代码会返 回新行 DataGridViewRow row dataGridView1 R

3、ows dataGridView1 Rows Count 1 尽管新行也包含在Rows集合中 它与Rows集合中其它行的行为却不相同 表现在两点 不能以编程的方式将新行从Rows集合中移除 如果你尝试这么做 会抛出 InvalidOperationException类型的异常 用户也不能删除新行 DataGridViewRowCollection Clear 方法也不能将新行从Rows集合中移除 不能在新行之后添加行 如果你尝试这么做 会抛出InvalidOperationException 类型的异 常 这种特性的结果是 新行总处于DataGridView的最后一行 当新行显示的时候 Dat

4、aGridViewRowCollection 类中用于添加行的方法 Add AddCopy以及AddCopies 在 内部都调用用于插入的方法 4 1 3 4 在新行中输入数据在新行中输入数据 用户开始在新行输入数据之前 新行的IsNewRow属性值为true 一旦用户开始输入 这一行 就不再是新行了 DataGridView中会产生一个 新 的新行 看下面示意图 Page 17 of 67 DataGridView 控件 doc 在添加 新 的新行时 会触发UserAddedRow事件 它的事件处理函数的第二个参数有属性 Row 指定了这个 新 的新行 如果用户此时按下Escape键 新 的

5、新行会被移除 这会触发 UserDeletingRow事件 它的事件处理函数的第二个参数的属性Row指定了 新 的新行 4 1 3 5 自定义新行的可视化效果自定义新行的可视化效果 新行是基于RowTemplate模板创建的 如果没有指定它的单元格的样式 它们会采用继承的样 式 要了解样式继承的更多信息 请参看第五章第一节的内容 新行中单元格的初始值是由每个单元格的DefaultNewRowValue属性决定的 对于 DataGridViewImageCell类型的单元格 其初始值为一个占位图片 其它类型的则为null 你可以重 写这个属性以返回自定义值 但也可以在DefaultValuesN

6、eeded事件处理函数中对默认值进行替换 该事件在焦点进入新行时触发 新行标题的标准图标是箭头或者星号 并没有得到暴露 如果你要自定义这个图标 就需要创 建一个自定义的DataGridViewRowHeaderCell 类 新行的标题的标准图标使用标题单元格DataGridViewCellStyle的ForeColor属性 注意 如果没 有足够的空间 图标就不会再显示 如果为标题单元格设置了字符串值 通过Value属性 但没有足够的控件同时显示文本和图标 那么图标会被首先截掉 4 1 3 6 新行的排序新行的排序 在非绑定模式下 新行总是添加在DataGridView的最后一行 即使已经对数据

7、排序 用户需要 在添加新行后再次进行排序 以将新记录放在合适的位置 这种行为方式类似于ListView控件 在绑定模式或虚拟模式 Virtual Mode 下 如果已对数据排序 那么插入数据时的行为取决于 数据模型的实现方式 对于ADO NET 新加的行会被自动排序至合适的位置 4 1 3 7 关于新行 还要注意 关于新行 还要注意 你不能将新行的Visible属性值设置为false 否则会触发一个InvalidOperationException类型的异 常 新行在创建时总是处于非选中 unselected 状态 4 1 3 8 Virtual Mode下的新行下的新行 如果你正要实现虚拟模

8、式 Virtual Mode 需要考虑数据模型添加新行和回滚添加操作的情 况 该功能准确的实现方式取决于数据模型的实现方式及其事务机制 例如 提交的时候是针对单 元格还是行 参看本文档后面关于Virtual Mode的主题 4 2 关于关于Null值值 在使用数据源的时候 比如数据库或业务对象 经常需要处理null值 null值可能是一个实际 的null VB中为Nothing 也可能是一个数据库的 null 值 DBNull Value 当你遭遇了这些值 就需 要考虑如何显示它们 另一方面 很多时候 你还需要向数据源写入null值 使用单元格Style的 NullValue属性和DataSo

9、urceNullValue 属性 你可以改变DataGridView处理null值的方式 Page 18 of 67 DataGridView 控件 doc 4 2 1 NullValue属性属性 DataGridViewCellStyle NullValue 属性本来要被命名为FormattedNullValue 的 但是后来没来 得及作出这个更改 但它能给我们带来一点提示 顾名思义 在格式化时会用到它 如果一个单 元格的值为 null 等于null或DBNull Value 它会使用你设置的NullValue属性来显示 该属性的默 认值取决于所在列的类型 见下图 DataGridView列

10、类型列类型 列的列的DefaultCellStyle NullValue值值 TextBoxColumn String Empty 空的图像 ImageColumn ComboBoxColumn String Empty ButtonColumn String Empty LinkColumn String Empty 默认值取决于ThreeState属性的值 如果为true 默认值 为CheckState Indeterminate 否则为unchecked CheckBoxColumn 有一点要了解 在用户输入数据时也会用到NullValue 例如 若用户向TextBox类型单元格输 入了

11、string Empty 那么会将null作为该单元格的值 查看下面的DataSourceNullValue属性以了解 究竟是输入了什么作为单元格的值 4 2 2 DataSourceNullValue属性属性 DataGridViewCellStyle DataSourceNullValue属性要被命名为ParseNullValue的 如果NullValue 属性被命名为FormattedNullValue的话 但最后还是采用了DataSourceNullValue 这样更直观准 确 在将null值写入单元格的值时 就会用到DataSourceNullValue属性 在数据绑定情形下 这个

12、null值将被写入数据库或业务对象 此处需要进行控制 因为对于数据库和业务对象来说 null的 概念不尽相同 通常你会期望 使用业务对象时将DataSourceNullValue 设置为null 而使用数据库 时则将其设置为DBNullValue DataSourceNullValue的默认值为DBNull Value 4 3 DataError事件事件 将DataError事件独立出来作为一个主题 是因为在操作数据时 经常会遭遇DataError事件 在操作数据时 DataError主要发生在一下情况 不能读 写或转换单元格的数据 在尝试进行某种 编辑操作时发生了异常 编辑操作中的DataE

13、rror 事件编辑操作中的DataError 事件 下面的列表列出了可能会引发DataError事件的编辑操作 刷新一个编辑 通过调用RefreshEdit方 法 取消编辑 Canceling an edit 结束编辑 Ending an edit 尝试将单元格的值写入数据源 初始化编辑控件 单元格的值 通过设置 单元格的FormattedValue属性或调用单 元格的InitializeEditingControl方法 提交编辑 Committing an edit 删除一行 Deleting a row Page 19 of 67 DataGridView 控件 doc DataError

14、的上下文 DataError的上下文 下面的列表显示了不同的DataError上下文环境 然后进一步说明了这些上下文环境合适可能发 生 DataErrorContext 何时发生何时发生 Formatting When attempting to retrieve the cell s formatted value When attempting to paint the cell or calculate the cell s tooltiptext Note that these operations usually also require getting the cell s for

15、matted value so the error context is OR d together Display When calculating the preferred size of a cell This usually also requires getting the cell s formatted value also PreferredSize RowDeletion Any exception raised when deleting a row When exceptions occur when committing ending or canceling an

16、edit Usually OR d in with other error contexts Parsing When exceptions occur when committing an edit Usually OR d with other error contexts Commit When exceptions occur while either initializing the editing control cell s value or Canceling an edit InitialValueRestoration When exceptions occur while attempting to validate grid data when the grid is losing focus Usually OR d with other error contexts LeaveControl When exceptions occur while validating updating committing getting cell content when

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号