前段时间在项目中用到了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常见用法和FAQ汇总相关推荐

  1. C# winform DataGridView 常见属性

    C# winform DataGridView 常见属性 C# winform DataGridView 属性说明 ① 取得或者修改当前单元格的内容 ② 设定单元格只读 ③ 不显示最下面的新行 ④ 判 ...

  2. C#中不常见的运算符功能汇总

    介绍 C#有很多运算符,可分为以下几种:算数运算符,比较运算符,条件运算符,赋值运算符,逻辑运算符.下面对不常见的运算符进行汇总. 概念 条件运算符 ?(可空类型修饰符) 引用类型可以使用空引用表示一 ...

  3. Centos系统服务FAQ汇总(下)

    Centos系统服务FAQ汇总  1.22 无人职守安装问题汇总 1.22.1 安装系统时提示PXE-E32:TFTP open timeout TFTP"Open" 查看发现xi ...

  4. 服务器时装不显示不出来,常见问题FAQ汇总

    常见问题FAQ汇总 1.金子刷皇榜,掉队字不显示,如何领取皇榜经验 点右上角的累了,打断进度条,就可以看到经验条末端有个掉队的字样出来了! 2.帝陵买钥匙进去后,要是中途出来了,还可以进去吗? 需要身 ...

  5. 炫舞时代显示服务器出错,qq炫舞2各种常见bug大全 FAQ详解

    qq炫舞2各种常见bug大全 FAQ详解 炫舞2基本配置要求: 1. 安装QQ炫舞2时出现出错提示 解决办法:安装包下载过程中出了问题,文件没下载完整或下载的有错误.重新下载安装. 2.输入帐号密码后 ...

  6. MATLAB中常见数字信号处理相关函数汇总

    MATLAB中常见数字信号处理相关函数汇总 现将MATLAB信号处理工具箱函数进行分组,便于记忆查询和长期回顾. Waveform Generation(波形产生) chairp: 产生扫频余弦函数: ...

  7. 中国常见空气质量数据标准汇总

    当前大家比较关注的常见空气质量指标分为: 室外污染参数:PM2.5, PM10, SO2, NO2, O3, CO 室内污染参数:TVOC, CO2, 甲醛 总结了一些材料,备用参考! 中国空气环境质 ...

  8. QQ空间农场游戏常见的十大问题汇总

    在QQ农场玩游戏经常会遇到问题,现将常见的十大问题汇总如下,希望对大家有所帮助. 一.出现系统繁忙字样买不到化肥种子无法进行施肥播种除草游戏读取速度过慢金钱显示负数等等. 这种问题的原因有三种: 1. ...

  9. smt贴片加工行业常见术语及知识汇总

    smt贴片加工行业常见术语及知识汇总 SMT贴片加工行业是所有电子成品的上游产业链,电子产品内部都有一块电路板,电路板上包括许多各种类型的电子元件,电子元件需要通过SMT及 DIP装配到电路板上.下面 ...

最新文章

  1. ubantu使用apt安装时出现: xxx is not found 的解决方法
  2. [NOIP1999] 普及组
  3. Mybatis学习链接
  4. mysql创建一个表用来快速查询表_mysql数据库的创建表格、查询(多表查询)
  5. java 8 stream 性能_java8中parallelStream性能测试及结果分析
  6. 梅林安装opkg后安装iperf3_阳台到底有没有必要安装推拉门?利与弊告诉你,不要等安装后后悔...
  7. 转]最长递增子序列问题的求解
  8. DNS 教父怒喷 DNS-over-HTTPS!
  9. 关于浏览器预检(OPTIONS)请求
  10. 如何自动调整代码格式 - vim /Visual Studio/ Source Insight...
  11. 软件开发中的EJB是什么?
  12. python开发语音录入_用Excel及Python实现数据录入语音校对功能
  13. 永中office linux卸载,安装永中Office for linux
  14. 寒冬,送点社区温暖。
  15. 计算机二级真题期刊论文模板,论文格式?二级标题是什么?
  16. 【Oracle】第1天 简单查询
  17. 【深度学习】平移不变性 (translation invariant)
  18. 注册服务时,id和ref是什么
  19. Mask_RCNN翻译和详解笔记一(原文翻译+源代码+代码使用说明)
  20. 工作以来一直在CRUD,Spring源码该怎么阅读?这份价值百万的源码解析让你如有神助!

热门文章

  1. OpenCV向应用程序添加跟踪栏
  2. QT通过JavaScript动态创建QML对象
  3. QT的QSyntaxHighlighter类的使用
  4. C++ 值传递、指针传递、引用传递
  5. python对文件的操作模式_python对文件的操作
  6. php实现java socket_php与java通过socket通信的实现代码
  7. Elasticsearch和Hive整合,将hive数据同步到ES中
  8. 基于Struts2的文件上传
  9. Python数据分析pandas之dataframe初识
  10. 表的插入、更新、删除、合并操作_10_仅复制表结构