Datagridview DateTime 格式不使用系统区域设置
Posted
技术标签:
【中文标题】Datagridview DateTime 格式不使用系统区域设置【英文标题】:Datagridview DateTime Format not using System Region settings 【发布时间】:2010-06-02 02:35:40 【问题描述】:我有一个数据网格视图,它连接到我的主窗体上的绑定源。 bindingsource 中的列和数据成员之一是 DateTime 对象。当 datagridview 显示此项时,它不使用 Window 的默认区域设置来显示日期时间。
奇怪的是,我可以访问同一个 DateTime 对象并将其打印到文本框,甚至可以将它传递给具有另一个 datagridview 和绑定源的另一个表单,它实际上可以正确显示在该表中。
那么,为什么我的主窗体上的 datagridview 在将 DateTime 对象转换为字符串时不使用区域日期/时间设置?
我已经检查过 datagridview 没有应用特殊格式,所以我没有什么想法可以检查了。
你们知道是否有任何超级秘密的方法可以让 datagridview 遵循系统区域格式规则吗?
另外,由于我非常怀疑我对这个 datagridview 与我的应用程序中的其他人所做的不同,下一个潜在的问题区域可能是应用程序负载:也许因为这在应用程序加载时出现,所以它没有得到与其他数据网格视图相同的cultureUI 设置?
更新 我尝试在数据网格视图中添加另一列并将其连接到相同的数据属性(日期时间),我得到了相同的结果。因此,关于整个 datagridview 或它的创建方式如何阻止“ToString”使用默认区域设置。
有什么帮助吗?
【问题讨论】:
【参考方案1】:在设计上,在 DataGridView 的Edit Columns
对话框中:
-
搜索属性
DefaultCellStyle
,然后打开此对话框;
搜索属性Format
并选择日期格式;
选择您喜欢的格式。
【讨论】:
如果我这样做,更改肯定会生效,这很好,但这不是我想要的结果。我不想应用任何特定格式,我希望它采用 Window 的默认格式。其他一切都很好,但不是这个控件。 我知道,如果我可以这么说的话,这在某种程度上是一个错误或缺乏。我曾经设置 DateTime 列 OnFormLoad 的DefaultCellStyle
属性。
或者你可以简单地在 hte getter 上格式化你绑定的 DateTime 属性,不行吗?
使用d
表示日期,它将根据区域设置以适当的格式显示。以上是关于Datagridview DateTime 格式不使用系统区域设置的主要内容,如果未能解决你的问题,请参考以下文章
如何在 DataGridViewColumn 中使用服务器 DateTime 格式而不是系统 DateTime 格式
如果相同的 DateTime 已经在一行中,如何覆盖 dataGridView 中的一行?
在 DataGridView 中显示之前将时间戳(Datetime.ticks)从数据库转换为 Datetime 值
将 DateTime 作为 VarChar 返回以在 DataGridView 中使用