首页 > 开发 > 综合 > 正文

手工创建datagrid的数据列(c#window)

2024-07-21 02:27:30
字体:
来源:转载
供稿:网友
 

笔者以前很少使用vs.net中的datagrid,原因是觉得不是很好用,昨天突然想起来,用一个简单的类,来实现手工创建数据列,这样可以自定义列名和绑定数据字段,使用起来比较方面的~~

类:exdatagrid.cs

using system;
using system.drawing;
using system.collections;
using system.componentmodel;
using system.windows.forms;

namespace windowsapplication5
{
 /// <summary>
 /// exdatagrid 的摘要说明。
 /// </summary>
 public class exdatagrid
 {
  private system.windows.forms.datagrid datagrid;
  private string strmapname;
  private static datagridtablestyle dgt;

//strmapname:表名;

  public exdatagrid(system.windows.forms.datagrid datagrid,string strmapname)
  {
   this.datagrid=datagrid;
   this.strmapname=strmapname;
   datagrid.tablestyles.clear(); 
   datagridtablestyle tblstyle = new datagridtablestyle();
   tblstyle.mappingname = this.strmapname;
   datagrid.tablestyles.add(tblstyle);
   dgt=tblstyle;
  }

//参数:

//1--i:gridcolumnstyles;

//2--strmap:mappingname ;

//3--strheader:headertext 
  public static void createcols(int i,string strmap,string strheader)
  {
   createcols(i,strmap,strheader,80);
  }

//参数:

//intwidth:数据列列宽
  public static void createcols(int i,string strmap,string strheader,int intwidth)
  {

//在这里可以设置列的样式
   datagridcolumnstyle textcol = new datagridtextboxcolumn();
   datagridtablestyle tblstyle=dgt;
   tblstyle.gridcolumnstyles.add(textcol);
   tblstyle.gridcolumnstyles[i].mappingname = strmap;
   tblstyle.gridcolumnstyles[i].headertext = strheader;
   tblstyle.gridcolumnstyles[i].width = intwidth;
   tblstyle.gridcolumnstyles[i].nulltext = string.empty;
  }

 }
}

调用:

   this.datagrid1.setdatabinding(dataset, "tablename");
   exdatagrid edg =new exdatagrid(this.datagrid1,"tablename");

   exdatagrid.createcols(0,"productcode","产品编号");
   exdatagrid.createcols(1,"productname","产品名称");
   exdatagrid.createcols(2,"productclass","产品类");



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表