DataGridView常见用法和FAQ汇总 - 转

    前段时间在项目中用到了WinForm,其中最复杂的控件当属DataGridView了,特别喜欢它那高度的可配置性(提供了大量的属性,方法和事件)、丰富的内置列类型,而且易于扩展,对性能问题也提供了良好的解决方案。

    不过最初看着它那数以百计的方法、属性、事件,感到一阵眩晕,不知如何下手。幸运地是,很快我就找到了一个网站,windowsforms.net,这也是WinForm的官方站点,这里有不少相关的文章,FAQ,以及不错的论坛,这个论坛里,你的问题很可能会是微软的开发人员为你回答的,那些回答也很到位。

    在其中找到了关于DGV的FAQ,更好的是他们提供了DGV的文档和示例。该文档共有六章和一个附录,详细的解释了DGV的结构,内置列/单元格类型,数 据操作,主要特性和最佳实践,最后提供了二十余个FAQ问题。我就是根据该文档,一步步逐渐了解DGV的。实际上,该文档的很多内容来自MSDN,而且限 于篇幅,有很多地方也不如MSDN详细,所以最好是用本文档作纲要,结合MSDN来学习。

    也许,对于很多开发人员来说,最有用的是FAQ部分,因为开发过程中,可能没有很多时间去全面了解DGV,而只是需要它的一个特定功能,这时建议先看看FAQ部分有没有你想要的答案;如果要全面了解DGV,建议按照该文档的组织结构,去逐步了解它。

    现在网上全面介绍DGV的地方好像不太多,尤其是中文开发社区,大都是介绍DGV的某种特性或用法,所以我想把这个文档翻译一下。翻译过程中,感觉还是比 较困难,虽然自己会时常看一些英文文章,但看懂和表达出来还是有很大不同,导致翻译进度也比较慢,所以只翻译了其中的四章和FAQ部分,剩下的两章有时间 再补充吧。

    另外,我也尝试了文档中的绝大部分代码,并且用菜单项来表示文档的章节结构,这样在看某一章时,可以很快找到相关的演示代码。我把这些也一块拿出来,大部 分都是些很简单的代码,很容易看懂。文档中用到的数据库是Northwind,在运行程序前,请先将Settings.settings中的连接字符串配 置正确。

    下面是FAQ的主要内容:

     1 、如何使指定的单元格不可编辑 ?
    
2 、如何让一个单元格不可用 ?
    
3 、如何避免用户将焦点设置到指定的单元格?
    
4 、如何使所有单元格总是显示编辑控件 ?
    
5 、如何在单元格内同时显示图标和文本?
    
6 、如何隐藏一列?
    
7 、如何避免用户对列排序?
    
8 、如何针对多个列排序 ?
    
9 、如何为编辑控件添加事件处理函数 ?
    
10 、应在何时移除编辑控件的事件处理函数 ?
    
11 、如何处理ComboBox列中ComboBox控件的SelectIndexChanged事件?
    
12 、如何通过拖放调整行的顺序?
    
13 、如何调整最后一列的宽度使其占据网格的剩余客户区?
    
14 、如何让TextBox类型的单元格支持换行 ?
    
15 、如何使Image列不显示任何图像(字段值为null时) ?
    
16 、如何能够在ComboBox类型的单元格中输入数据?
    
17 、如何在用户编辑控件的时候(而不是在验证时)就显示错误图标 ?
    
18 、如何同时显示绑定数据和非绑定数据?
    
19 、如何显示主从表?
    
20 、如何在同一DataGridView中显示主从表?
    
21 、如何避免用户对列排序 ?
    
22 、如何在点击工具栏按钮的时候将数据提交到数据库?
    
23 、如何在用户删除记录时显示确认对话框?

    如果在这个网站和MSDN都没有找到想要的东西,可以去codeproject看看,那里也有一些关于DGV的文章。

    下面是相关下载内容:
    微软的文档和示例以及我翻译的部分文档和演示代码   
    微软的文档和示例原始下载


作者: Anders Cui
出处: http://anderslly.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

你可能感兴趣的:(datagridview)