繁体   English   中英

DataGridView comboBoxColumn dateTime格式

[英]DataGridView comboBoxColumn dateTime format

Winform,带有comboBox列的dataGridview。 列数据源指向Sql表“ dateTime”字段格式。 每行包含一个数据,如01/01 / 2014、01 / 02/2014等。我正在尝试格式化dataGridView中的comboBox单元格以仅显示月份/年份。

我直接在设计器中尝试使用自定义格式:

在此处输入图片说明

和代码:

dataGridView1.Columns["Periodo"].DefaultCellStyle.Format = ("{0:M/yyyy}");

像这样

dataGridView1.Columns["Periodo"].DefaultCellStyle.Format = "M/yyyy";

以及其他许多方式。 我无法正确处理,comboBox继续显示2014年1月1日类型格式。 如何格式化该列以获取“ 2014年1月”,“ 2014年2月”等?

问题不在于您尝试的格式( "M/yyyy"很好), Format属性也不起作用。 问题在于您所做的操作会影响单元格内​​容,而不是组合框内容。

避免DataGridViewComboBoxColumn / DataGridViewComboBoxCell问题的最好方法是处理组合框的项目,而不是处理单元格本身。 样例代码:

DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.Name = "DateCol";
List<DateTime> dates = new List<DateTime>() { DateTime.Now.AddMonths(-1), DateTime.Now, DateTime.Now.AddMonths(1) };
//Dates = Dates.OrderBy(x => x).ToList();
List<string> colSource = dates.Select(x => x.ToString("M/yyyy")).ToList(); 
col.DataSource = colSource;

dataGridView1.Columns.Add(col);

在这段代码中,我要处理日期列表(并最终对其进行排序或执行任何其他必需的操作); 但随后我创建了一个(格式正确的)字符串列表作为组合框源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM