欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WinForm中DataGridView的使用

程序员文章站 2022-10-17 09:50:33
数据绑定 直接指定源数据(List):this.DataSource = data; 自定义列 取消自动生成列:this.AutoGenerateColumns = false; 自定义列数、列名、列宽权重、列填充 1 this.Columns.Clear(); 2 this.ColumnCo ......
  • 数据绑定
    • 直接指定源数据(list<t>):this.datasource = data;
    • 自定义列
      • 取消自动生成列:this.autogeneratecolumns = false;
      • 自定义列数、列名、列宽权重、列填充
        • WinForm中DataGridView的使用
           1             this.columns.clear();
           2             this.columncount = 3;
           3             this.columns[0].name = "column 1";
           4             this.columns[0].datapropertyname = "varname";
           5             this.columns[0].fillweight = 200;
           6             this.columns[1].name = "column 2";
           7             this.columns[1].datapropertyname = "varpath";
           8             this.columns[1].fillweight = 300;
           9             this.columns[2].name = "column 2";
          10             this.columns[2].fillweight = 100;
          view code
  • 样式
    • 行高:this.rowtemplate.height = 30;
    • 奇偶行
      • this.alternatingrowsdefaultcellstyle.backcolor = color.fromargb(223, 230, 237);
      • this.rowsdefaultcellstyle.backcolor = color.white;
  • 边框
    • 直接设置cellborderstyle,默认为borderstyle.fixedsingle,但这个时候底边框有可能消失,可以考虑改为borderstyle.fixed3d
    • 注:columnheadersborderstylerowheadersborderstyle属性可以修改datagridview头部的单元格边框线样式。属性设定值是datagridviewheaderborderstyle枚举的值
    • 其他可参考(如颜色、四个方位边框的单独设置):https://blog.csdn.net/yunhaic/article/details/7176015
  • 头部
    • 取消使用系统风格:this.enableheadersvisualstyles = false;
    • 取消显示行头:this.rowheadersvisible = false;
    • 设置高度
      • 先把columnheadersheightsizemode从默认的autosize设置为enableresizing
      • 再用columnheadersheight直接设置高度
      • 注:代码构造函数中直接设置这两个属性也可以
      • 注:将datagridview设置固定高度,并自动显示滚动条时,如果header高度是autosize的,可能会使最后一行显示不全
    • 设置字体
    • 设置边框
      • 直接设置columnheadersborderstyle,默认是datagridviewheaderborderstyle.raised,可改为single、none等
  • 编辑
    • 设置是否允许编辑
      • this.readonly = true;
      • allowusertoaddrowsallowusertodeleterows等属性
  • 选中
    • 设置选中模式
      • 直接设置selectionmode属性,包括datagridviewselectionmode.fullrowselect等选项
    • 取消首行或首个单元格的默认选中
      • 在datagridview的rowsprepaint事件处理函数中
        • WinForm中DataGridView的使用
           1         private void rowsprepainthandler(object sender, datagridviewrowprepainteventargs e)
           2         {
           3             int index = e.rowindex;
           4 
           5             // cancel default selected first row
           6             if (index == 0)
           7             {
           8                 this.rows[index].selected = false;
           9             }
          10         }
          view code