注册 登录
编程论坛 C# 论坛

个人珍藏DataGridView控件秘籍

wangnannan 发布于 2010-11-01 13:23, 29330 次点击
个人珍藏DataGridView控件秘籍 千万不要跟别人说你已经完全掌握了DataGridView 至少也得看完这本书在说  呵呵  希望对大家有帮助 目录如下
程序代码:
DataGridView控件
DataGridView是用于Windows Froms 2.0的新网格控件。它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特性。

关于本文档:
本文档不准备面面俱到地介绍DataGridView,而是着眼于深入地介绍一些技术点的高级特性。

本文档按逻辑分为5个章节,首先是结构和特性的概览,其次是内置的列/单元格类型的介绍,再次是数据操作相关的内容,然后是主要特性的综述,最后是最佳实践。

大部分章节含有一个“Q & A”部分,来回答该章节相关的一些常见问题。注意,某些问题会由于知识点的关联性重复出现在多个章节。这些问题、答案及其附带的示例代码都包含在本文档的附录部分。

注意:本文档的大部分内容来自MSDN中DataGridView控件的相关文档。

内容
1    何为DataGridView    4
1.1    DataGridView和DataGrid 之间的区别    4
1.2    DataGridView的亮点    5
2    DataGridView的结构    6
2.1    结构元素    6
2.2    单元格和组    6
2.3    DataGridView的单元格    6
2.3.1    DataGridViewCell的工作机制    7
2.4    DataGridView的列    9
2.5    DataGridView的编辑控件    9
2.6    DataGridView的行    10
3    列/单元格类型揭密    11
3.1    DataGridViewTextBoxColumn    11
3.2    DataGridViewCheckBoxColumn    12
3.3    DataGridViewImageColumn    12
3.4    DataGridViewButtonColumn    13
3.5    DataGridViewComboBoxColumn    13
3.5.1    DataError与ComboBox列    13
3.6    DataGridViewLinkColumn    14
4    操作数据    15
4.1    数据输入和验证的相关事件    15
4.1.1    数据验证相关事件的顺序    15
4.1.2    验证数据    15
4.1.3    在新行中的数据输入    16
4.2    关于Null值    19
4.2.1    NullValue属性    19
4.2.2    DataSourceNullValue属性    19
4.3    DataError事件    20
4.4    数据绑定模式    21
4.4.1    非绑定模式    21
4.4.2    绑定模式    21
4.4.3    虚拟模式    22
4.4.4    混合模式    22
5    Overview of features    24
5.1    Styling    24
5.1.1    The DataGridViewCellStyle Class    24
5.1.2    Using DataGridViewCellStyle Objects    24
5.1.3    Style Inheritance    25
5.1.4    Setting Styles Dynamically    28
5.2    Custom painting    28
5.2.1    Paint Parts    28
5.2.2    Row Pre Paint and Post Paint    29
5.3    Autosizing    30
5.3.1    Sizing Options in the Windows Forms DataGridView Control    30
5.3.2    Resizing with the Mouse    31
5.3.3    Automatic Sizing    32
5.3.4    Programmatic Resizing    33
5.3.5    Customizing Content-based Sizing Behavior    34
5.3.6    Content-based Sizing Options    34
5.4    Selection modes    34
5.4.1    Programmatic Selection    35
5.5    Scrolling    35
5.5.1    Scroll event    35
5.5.2    Scroll bars    35
5.5.3    Scrolling Properties    36
5.6    Sorting    36
5.6.1    Programmatic Sorting    37
5.6.2    Custom Sorting    38
5.7    Border styles    39
5.7.1    Standard Border Styles    39
5.7.2    Advanced Border Styles    39
5.8    Enter-Edit modes    40
5.9    Clipboard copy modes    40
5.10    Frozen columns/rows    41
5.11    Implementing Custom cells and editing controls/cells    41
5.11.1    IDataGridViewEditingControl    42
5.11.2    IDataGridViewEditingCell    42
5.12    Virtual mode    42
5.12.1    Bound Mode and Virtual Mode    42
5.12.2    Supplementing Bound Mode    42
5.12.3    Replacing Bound Mode    43
5.12.4    Virtual-Mode Events    43
5.12.5    Best Practices in Virtual Mode    44
5.13    Capacity    44
6    Best Practices    45
6.1    Using Cell Styles Efficiently    45
6.2    Using Shortcut Menus Efficiently    45
6.3    Using Automatic Resizing Efficiently    45
6.4    Using the Selected Cells, Rows, and Columns Collections Efficiently    46
6.5    Using Shared Rows    46
6.6    Preventing Rows from Becoming Unshared    47
附录 A – 常见问题:    49
1.    如何使指定的单元格不可编辑?    49
2.    如何让一个单元格不可用?    49
3.    如何避免用户将焦点设置到指定的单元格?    51
4.    如何使所有单元格总是显示控件(不论它是否处于编辑状态)?    51
5.    Why does the cell text show up with “square” characters where they should be new lines?    51
6.    如何在单元格内同时显示图标和文本?    51
7.    如何隐藏一列?    53
8.    如何避免用户对列排序?    53
9.    如何针对多个列排序?    54
10.    如何为编辑控件添加事件处理函数?    58
11.    应在何时移除编辑控件的事件处理函数?    58
12.    如何处理ComboBox列中ComboBox控件的SelectIndexChanged事件?    58
13.    如何通过拖放调整行的顺序?    59
14.    如何调整最后一列的宽度使其占据网格的剩余客户区?    60
15.    如何让TextBox类型的单元格支持换行?    60
16.    如何使Image列不显示任何图像(字段值为null时)?    61
17.    如何能够在ComboBox类型的单元格中输入数据?    61
18.    How do I have a combo box column display a sub set of data based upon the value of a different combo box column?    61
19.    如何在用户编辑控件的时候(而不是在验证时)就显示错误图标?    62
20.    如何同时显示绑定数据和非绑定数据?    65
21.    How do I show data that comes from two tables?    66
22.    如何显示主从表?    66
23.    如何在同一DataGridView中显示主从表?    68
24.    如何避免用户对列排序?    68
25.    如何在点击工具栏按钮的时候将数据提交到数据库?    68
26.    如何在用户删除记录时显示确认对话框?    68

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

原书为word 文件
只有本站会员才能查看附件,请 登录

238 回复
#202
天涯流浪ren2013-04-22 12:32
多谢分享,下来学习学习
#203
w1371601642013-05-13 00:51
谢谢,看上去不错
#204
hardman8882013-08-27 08:08
多谢分享!!
#205
wytsys2014-02-19 00:23
多谢分享!!
#206
有容就大2014-02-20 23:03
呵呵 神级老贴啊
#207
congbaoz2014-02-21 20:32
好东西
#208
congbaoz2014-02-21 20:32
好东西
#209
做好每一天2014-02-23 14:49
必须顶一下。。。。。。。。。。。。。。。。。。。。。。
#210
tjm_19902014-03-05 09:10
楼主强大!
#211
hot_tangjun2014-03-10 17:22
这个是好东西,正为这个烦呢
#212
bufubaoni2014-04-01 10:17
好东西 谢谢分享
#213
wuyangjun2014-04-09 20:24
刚学下来看看
#214
vpsxss2014-04-18 11:44
谢谢分享!
#215
baobei5212014-04-18 18:10
谢谢楼主     好东西啊
#216
jsddx2014-04-24 11:12
好好学习
#217
世纪扣将2014-05-31 21:35
新手下载看看
#218
lesok2014-06-04 21:15
不错不错!!!
#219
习惯被动2014-06-05 15:50
不错!
#220
李子树下2014-06-11 21:49
谢谢楼主啦
#221
zhh5302014-06-18 09:46
我也下了
#222
sufei12342014-06-19 10:28
谢谢楼主分享
#223
a12195927862014-06-23 17:15
谢谢楼主分享
#224
碧波哥2014-07-16 20:50
顶一个
#225
fcw19752014-08-17 19:49
多谢
#226
一个人飞回2014-09-02 23:27
只有本站会员才能查看附件,请 登录
你好,我现在有一个问题,前三列我通过绑定一个datatable得到数据,但是第四列我是在便编辑列中添加并设置的datagridviewcheckcolumn列,设置的是falsevalue为0,truevalue为1,我想获得该列的所有值 ,就是选中的是1,没选中的是0,我想得到这些值放在一个datatable中,但是不知道怎么做。用this.dataGridView1.Rows[i].Cells["签到"].Value.ToString(),结果为null,请问要怎么得到想要的。
#227
hoo1232015-06-17 14:52
谢谢楼主分享,学习学习
#228
lililioo012015-07-14 11:11
里面的Checked 怎么让它可以选中和取消啊???
#229
lzm2015-08-06 15:29
非常好,学习了。
#230
woaidou2015-10-23 09:03
#231
woaidou2015-10-23 09:03
多谢分享
#232
你猜猜再猜2015-11-27 10:14
你好,我是我猜猜再猜
#233
ajkzhao2016-02-06 16:26
下载下来看看
#234
bowen032016-03-08 19:36
谢谢楼主分享~
#235
jdslyk2016-04-18 12:46
#236
mingjl2017-12-12 11:01
谢谢楼主分享~
#237
ztlcqy2021-01-19 21:12
谢谢楼主,先下载学习
#238
xufeng_andy2022-04-07 13:52
总觉得自己来晚了
#239
龙胆草2022-06-21 15:14
回复 楼主 wangnannan
谢谢楼主分享,下载收藏!
12345