您的位置:程序门 -> .net技术 -> c#



2005如何格式化datagridview中某個字段的值?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


2005如何格式化datagridview中某個字段的值?[已结贴,结贴人:yuan168]
发表于:2007-03-23 10:11:11 楼主
1,如何格式化datagridview中某個字段的值,如:
性別    
1
1
0
1
想要格式化為:
性別




=======================
2,如何設定某個字段居中對齊?
3,如何將字段按要求重新來排列?
姓名,性別,出生日期====> 姓名,出生日期,性別
发表于:2007-03-23 10:19:141楼 得分:0
其实这些都是datagridview的高级话题,希望有人可以提供一些专门讲解datagridview高级使用的资料!
发表于:2007-03-23 10:31:302楼 得分:5
1.   请用key/value   pair的collection实现,   或者用enum
2.   请用cellstyle里面的alignment
3.   参考sort(icomparer)
发表于:2007-03-23 10:54:023楼 得分:10
to:1,如何格式化datagridview中某個字段的值

可以给datagridview添加cellformatting事件,以格式化显示它的单元格的内容,比如:

private   void   datagridview1_cellformatting(object   sender,   datagridviewcellformattingeventargs   e)
{
if   (this.datagridview1.columns[e.columnindex].headertext   ==   "sex ")
{
if   (object.equals(e.value,   1))
{
e.value   =   "男 ";
}
else   if   (object.equals(e.value,   0))
{
e.value   =   "女 ";
}
}
}
发表于:2007-03-23 11:33:534楼 得分:0
学习...

发表于:2007-03-23 12:10:155楼 得分:10
to:2,如何設定某個字段居中對齊?

for   example:

                        this.datagridview1.columns[ "列名 "].defaultcellstyle.alignment   =   datagridviewcontentalignment.middlecenter;
发表于:2007-03-23 12:12:116楼 得分:5
to:3,如何將字段按要求重新來排列?

你的意思是不是自定义表头??

for   example:

private   void   form1_load(object   sender,   eventargs   e)
                {
                        databind();
                }
                private   void   databind()
                {
                        //初始化datagridview
                        datagridviewtextboxcolumn   column   =   new   datagridviewtextboxcolumn();
                        column.name   =   "sno ";
                        column.headertext   =   "学号 ";
                        //设置绑定数据源的sno字段
                        column.datapropertyname   =   "sno ";
                        this.datagridview1.columns.add(column);

                        column   =   new   datagridviewtextboxcolumn();
                        column.name   =   "sname ";
                        column.headertext   =   "姓名 ";
                        //设置绑定数据源的sname字段
                        column.datapropertyname   =   "sname ";
                        this.datagridview1.columns.add(column);

                        column   =   new   datagridviewtextboxcolumn();
                        column.name   =   "sage ";
                        column.headertext   =   "年龄 ";
                        //设置绑定数据源的 "sage "字段
                        column.datapropertyname   =   "sage ";
                        this.datagridview1.columns.add(column);

                        //设置不自动产生列
                        this.datagridview1.autogeneratecolumns   =   false;
                        this.datagridview1.allowusertoaddrows   =   false;

                        //以下进行数据绑定
                        sqlconnection   con   =   new   sqlconnection( "server=.;database=student;uid=sa;pwd=0421 ");
                        sqldataadapter   sda   =   new   sqldataadapter( "select   *   from   studentdetails ",   con);
                        dataset   ds   =   new   dataset();
                        sda.fill(ds,   "student ");
                        this.datagridview1.datasource   =   ds.tables[ "student "];                  
                }
发表于:2007-03-23 12:47:337楼 得分:0
形式 语法 结果
数字 {0:n2} 12.36
数字 {0:n0} 13
货币 {0:c2} $12.36
货币 {0:c4} $12.3656
货币 "¥{0:n2} " ¥12.36
科学计数法 {0:e3} 1.23e+001
百分数 {0:p} 12.25%
日期 {0:d} 2006年11月25日
日期 {0:d} 2006-11-25
日期 {0:f} 2006年11月25日   10:30
日期 {0:f} 2006年11月25日   10:30:00
日期 {0:s} 2006-11-26   10:30:00
时间 {0:t} 10:30:00
发表于:2007-03-23 13:36:298楼 得分:10
方法一
private   void   datagridview1_cellformatting(object   sender,   datagridviewcellformattingeventargs   e)
{
if   (this.datagridview1.columns[e.columnindex].headertext   ==   "sex ")
{
if   (object.equals(e.value,   1))
{
e.value   =   "男 ";
}
else   if   (object.equals(e.value,   0))
{
e.value   =   "女 ";
}
}
}
方法二
在datagirdview中加入combox列
  this.datagridview1.columns.removeat(icolumn);
                        datagridviewcomboboxcolumn   comboboxcolumn   =   new   datagridviewcomboboxcolumn();
                        comboboxcolumn   =   createcomboboxcolumn(icolname);
                        setdatagridviewcombobox(ref   comboboxcolumn);
                        this.datagridview1.columns.insert(icolumn,   comboboxcolumn);
发表于:2007-03-23 15:15:249楼 得分:10
1.对齐的话,建议套用摸板(里面有水平对齐和垂直对齐两个属性任你选)
2.至于1对应男,0对应女,可以后台写一个ondatabinding方法就可以了,例你绑定在label控件上
protected   void   getsex(object   sender,eventargs   e){
    label   obj   =   (label)sender;
    if(obj.text   ==   "0 "){
        obj.text   =   "女 ";
    }
    else{
        obj.text   =   "男 ";
    }
}
发表于:2007-03-23 15:16:0010楼 得分:0
如有更好的办法,麻烦教我,谢谢!呵呵
发表于:2007-03-23 15:21:1111楼 得分:0
不错


快速检索

最新资讯
热门点击