• 数据绑定

    • 直接指定源数据(List<T>):this.DataSource = data;
    • 通常也可以直接指定DataTable类型的数据
      •  DataTable dt = new DataTable();
        DataColumn dc1 = new DataColumn(_column1Name, Type.GetType("System.String"));
        dt.Columns.Add(dc1);
        foreach (string searchText in VisualXmlApp.Instance.searchHistoryGridView.Take())
        {
        DataRow dr = dt.NewRow();
        dr[_column1Name] = searchText;
        dt.Rows.Add(dr);
        }
        this.dgvDataSourceSearchHistory.DataSource = dt;
    • 自定义列
      • 取消自动生成列:this.AutoGenerateColumns = false;
      • 自定义列数、列名、列宽权重、列填充
        •              this.Columns.Clear();
          this.ColumnCount = ;
          this.Columns[].Name = "Column 1";
          this.Columns[].DataPropertyName = "VarName";
          this.Columns[].FillWeight = ;
          this.Columns[].Name = "Column 2";
          this.Columns[].DataPropertyName = "VarPath";
          this.Columns[].FillWeight = ;
          this.Columns[].Name = "Column 2";
          this.Columns[].FillWeight = ;
  • 样式
    • 整体背景色(当窗口变大时,空白处的颜色)

      • this.BackgroundColor = DataSourceUIParams.WindowBackColor;
    • 边框
      • 风格

        • DataGridView.BorderStyle
          • BorderStyle 枚举: FixedSingle(单线,默认)、Fixed3D、None
      • 颜色(所有边框,含普通数据行和头部)
        • this.GridColor = Color.FromArgb(173, 190, 203);
        • 如果要头部生效,别忘了取消系统风格影响:this.EnableHeadersVisualStyles=false;
        • 默认是 ControlDarkDark 。但是只有在 CellBorderStyle 被设定为 Single、SingleHorizontal、SingleVertical  的条件下才能改变其边框线的颜色。
      • 如果是自定义了一个控件继承自DataGridView,那么即使在这个控件中设置了不显示边框,在父控件中仍然需要再设置一次其BorderStyle = BorderStyle.None;
      • 其他可参考(如颜色、四个方位边框的单独设置):https://blog.csdn.net/yunhaic/article/details/7176015
    • 头部
      • 取消使用系统风格:this.EnableHeadersVisualStyles = false;
      • 行头
        • 取消显示行头

          • this.RowHeadersVisible = false;
        • 边框
          • 风格

            • 直接设置RowHeadersBorderStyle,默认是DataGridViewHeaderBorderStyle.Raised,可改为Single、None等。属性设定值是DataGridViewHeaderBorderStyle枚举的值
      • 列头
        • 取消显示列头

          • this.ColumnHeadersVisible = false;
        • 高度
          • 先把ColumnHeadersHeightSizeMode从默认的AutoSize设置为EnableResizing
          • 再用ColumnHeadersHeight直接设置高度
          • 注:代码构造函数中直接设置这两个属性也可以
          • 注:将DataGridView设置固定高度,并自动显示滚动条时,如果Header高度是AutoSize的,可能会使最后一行显示不全
        • 字体
        • 边框
          • 风格

            • 直接设置ColumnHeadersBorderStyle,默认是DataGridViewHeaderBorderStyle.Raised,可改为Single、None等。属性设定值是DataGridViewHeaderBorderStyle枚举的值
            • 同样,ColumnHeadersBorderStyle只能设定单元格全部边框线的式样。要单独改变单元格某一边边框式样的话,需要用到设定行头单元格的属性是: RowHeadersBorderStyle, 设定列头单元格属性是:ColumnHeadersBorderStyle
    • 数据行
      • 高度

        • this.RowTemplate.Height = 30;
      • 奇偶行
        • 背景色

          • this.AlternatingRowsDefaultCellStyle.BackColor = Color.FromArgb(223, 230, 237);
          • this.RowsDefaultCellStyle.BackColor = Color.White;
      • 边框
        • 风格

          • 直接设置CellBorderStyle,默认为BorderStyle.FixedSingle,但这个时候底边框有可能消失,可以考虑改为BorderStyle.Fixed3D
          • CellBorderStyle只能设定单元格全部边框线的式样。要单独改变单元格某一边边框式样的话,需要用到DataGridView.AdvancedCellBorderStyle属性。
  • 是否可编辑、新增、删除
    • this.ReadOnly = true;
    • this.AllowUserToAddRows = false;
    • this.AllowUserToDeleteRows = false;
  • 是否可调整列宽、行宽
    • this.AllowUserToResizeColumns = false;
      this.AllowUserToResizeRows = false;
  • 是否可选中及选中模式
    • 是否可多选:this.MultiSelect = false;
    • 设置选中模式
      • 直接设置SelectionMode属性,包括DataGridViewSelectionMode.FullRowSelect等选项
    • 取消首行或首个单元格的默认选中
      • 在DataGridView的RowsPrePaint事件处理函数中

        •          private void RowsPrePaintHandler(object sender, DataGridViewRowPrePaintEventArgs e)
          {
          int index = e.RowIndex; // cancel default selected first row
          if (index == )
          {
          this.Rows[index].Selected = false;
          }
          }

WinForm中DataGridView的使用(一) - 基本使用的更多相关文章

  1. winform中dataGridView单元格根据值设置新值,彻底解决绑定后数据类型转换的困难

    // winform中dataGridView单元格在数据绑定后,数据类型更改困难,只能迂回实现.有时候需要将数字变换为不同的文字描述,就会出现int32到string类型转换的异常,借助CellFo ...

  2. winform中dataGridView隔行显示不同的背景色,鼠标移动上显示不同颜色,离开后变回原色

    winform中dataGridView隔行显示不同的背景色,鼠标移动上显示不同颜色,离开后变回原色 先设置奇数行颜色,这个有个自带的属性AlternatingRowsDefaultCellStyle ...

  3. 【接上一篇】winform中dataGridView高度和宽度自适应填充完数据的高度和宽度,即dataGridView根据数据自适应大小

    上一篇:winform中dataGridView高度自适应填充完数据的高度 winform中dataGridView高度自适应填充完数据的高度,就是dataGridView自身不产生滚动条,自己的高度 ...

  4. winform中dataGridView高度自适应填充完数据的高度

    // winform中dataGridView高度自适应填充完数据的高度,就是dataGridView自身不产生滚动条,自己的高度是根据数据的多少而变动. 在load的时候,数据绑定后,加上如下代码: ...

  5. C# Winform中DataGridView的DataGridViewCheckBoxColumn使用方法

    下面介绍Winform中DataGridView的DataGridViewCheckBoxColumn使用方法: DataGridViewCheckBoxColumn CheckBox是否选中 在判断 ...

  6. WinForm中DataGridView复制选中单元格内容解决方案

    WinForm中DataGridView鼠标选中单元格内容复制方案 1.CTR+C快捷键复制 前提:该控件ClipboardCopyMode属性设置值非Disable: 2.鼠标框选,自定义代码实现复 ...

  7. winform中DataGridView实现分页功能

    WinForm轻松实现自定义分页 (转载) WinForm轻松实现自定义分页 (转载)   转载至http://xuzhihong1987.blog.163.com/blog/static/26731 ...

  8. Winform 中DataGridView控件添加行标题

    有很多种方法. 1.可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value) /// <summary> / ...

  9. Winform 中DataGridView的checkbox列,当修改checkbox状态时实时获得其状态值

    不知道大家有没有这样的经验,当点击或者取消datagridview的checkbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作,下面就列出它的解决办法: 主要用到了DataGridV ...

  10. WinForm中DataGridView显示更新数据--人性版

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

随机推荐

  1. oracle使用3DES加密

    CREATE OR REPLACE PACKAGE dbc_cryptor IS SYSKEY VARCHAR2(16) := '0000000012345678'; SYSIV VARCHAR2(1 ...

  2. jrebel

    jrebel 编辑   JRebel是一套JavaEE开发工具.JRebel允许开发团队在有限的时间内完成更多的任务修正更多的问题,发布更高质量的软件产品. JRebel是收费软件,用户可以在JReb ...

  3. jQuery之JSP加载JS文件不起作用的有效解决方法

    JSP加载JS文件不起作用的有效解决方法 作者: 字体:[增加 减小] 类型:转载 时间:2014-04-08 jsp导入jquery文件,老是不起作用,原因在于其不能访问/WEB-INF/目录下的文 ...

  4. 2016-2017-2 20155312 实验三敏捷开发与XP实践实验报告

    1.研究code菜单 Move Line/statement Down/Up:将某行.表达式向下.向上移动一行 suround with:用 try-catch,for,if等包裹语句 comment ...

  5. PHP字符串大小写转换函数

    string strtolower(string $str) 将字符串转换为小写 string strtoupper(string $str) 将字符串转换为大写 $str1 = 'html'; $s ...

  6. AOP的异常通知

      一.配置异常通知的步骤 (Aspectj方式) 1.只有当切点报异常才能触发异常通知 2.在spring中有Aspectj 方式提供了异常通知方法 2.1 如果希望通过 schema-base 实 ...

  7. java.io.IOException: java.sql.SQLException: ORA-01502: index 'BTO.PK_xxxxx' or partition of such index is in unusable state

    最近由于数据库的全备出问题了,所以一直在观察. 刚好发现很多不需要的数据,就删了几百个G的数据吧. 今天突然就报这个问题. java.io.IOException: java.sql.SQLExcep ...

  8. 2019.01.20 bzoj3999: [TJOI2015]旅游(树链剖分)

    传送门 树链剖分菜题. 题意不清差评. 题意简述(保证清晰):给一棵带权的树,每次从aaa走到bbb,在走过的路径上任意找两个点,求后访问的点与先访问的点点权差的最大值. 思路: 考虑暴力:维护路径的 ...

  9. Jquery 的ajax里边不能识别$(this)

    确实不能用,在ajax外面弄个变量$this= $(this),然后在里面用就行了 在jQuery使用ajax后$(this)失效,原因很简单,$(this)指向的是最近调用它的jquery对象,即$ ...

  10. 第28章:MongoDB-索引--过期索引(TTL)

    ①过期索引(TTL) TTL索引是让文档的某个日期时间满足条件的时候自动删除文档,这是一种特殊的索引,这种索引不是为了提高查询速度的,TTL索引类似于缓存,缓存时间到了就过期了,就要被删除了 ②范例: ...