winform gridview DefaultCellStyle.Format

生活真美好 2009-01-14 05:07:31
在gridview中,如果用模版建立固定列,可以在样式中定义小数的位数
自动生成的代码如下
this.IsStop0.DataPropertyName = "IsStop";
dataGridViewCellStyle3.Format = "N4";
dataGridViewCellStyle3.NullValue = null;
this.IsStop0.DefaultCellStyle = dataGridViewCellStyle3;
this.IsStop0.HeaderText = "小数位练习";
this.IsStop0.Name = "IsStop0";

可是,我希望用不固定列的方式,即根据数据源绑定列表,在指定列上设置小数位数
尝试了以下方法,不是报错,就是显示时不起作用,如何解决?
dgvDatasetRecord.Columns[i - 1].DefaultCellStyle.Format = "N4";
dgvDatasetRecord.Columns[i - 1].DefaultCellStyle.Format = "99999999.9999";
dgvDatasetRecord.Columns[i - 1].CellTemplate.Style.Format = "N4";
dgvDatasetRecord.Columns[i - 1].InheritedStyle.Format = "N4";
...全文
576 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
生活真美好 2009-01-15
  • 打赏
  • 举报
回复
列索引号用“i - 1”,是因为我循环各字段,根据其它条件,判断各列是否有小数位,小数位的格式化位数,好象不会有影响。

生活真美好 2009-01-15
  • 打赏
  • 举报
回复
我用的方法是
1、列表控件不设置列信息
2、代码中,重要部分举例
this.dgvDatasetRecord.AutoGenerateColumns = true; //获取或设置一个值,该值指示在设置 DataSource 或 DataMember 属性时是否自动创建列。
this.dgvDatasetRecord.DataSource = dtRecordInfo;
dgvDatasetRecord.Columns[i - 1].DefaultCellStyle.Format = "N4";
3、不起作用。
生活真美好 2009-01-15
  • 打赏
  • 举报
回复
试过了,固定列可以起作用,如果是根据数据源自动生成各列,该命令不起作用,谢谢。

网上查过,去年也有人问过同样问题,最后是无满意结贴。

晕,我也遇到同样问题了。

有用相同的方法可以实现的人吗,好象不应该是环境问题。
hsmserver 2009-01-15
  • 打赏
  • 举报
回复
dgv.Columns[i].DefaultCellStyle.Format = "F4";
生活真美好 2009-01-15
  • 打赏
  • 举报
回复
55,
帮忙了。
生活真美好 2009-01-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhoufoxcn 的回复:]
确定那一列是数据吗?
[/Quote]

呵呵,解决了,用的其它系统二次开发,列号的起始索引不同,混了。
youqi1984 2009-01-15
  • 打赏
  • 举报
回复
我用的也是动态数据源。当绑定完成后。
触发 dataGridView1_DataBindingComplete事件
   for (int j =0; j < R; j++)//保留四位小数
{
dataGridView1.Columns[j].DefaultCellStyle.Format="N4";
}
运行正常呀
生活真美好 2009-01-15
  • 打赏
  • 举报
回复
自己顶一下,呵呵
生活真美好 2009-01-14
  • 打赏
  • 举报
回复
B/S和C/S转了几圈,不知道新版C/S的怎么写了,谢谢各位。
生活真美好 2009-01-14
  • 打赏
  • 举报
回复
是的,我知道是那一列数据
1、动态.Columns[i].DataType.ToString() == "System.Double",可以临时判断是哪列。
2、业务软件,呵呵,固定列,用列名可以知道的。
周公 2009-01-14
  • 打赏
  • 举报
回复
确定那一列是数据吗?
生活真美好 2009-01-14
  • 打赏
  • 举报
回复
不行的,隔行数字型数据有错,且我是要按列指定格式,因各列要求的小数位数不同。
jacklee_008 2009-01-14
  • 打赏
  • 举报
回复
这样设置:
dataGridView1.AlternatingRowsDefaultCellStyle.Format = "99999999.9999";

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧