某个DataTable中的DataColumn为DateTime类型时,绑定到TextBox后怎样让它不显示时间部分?
从数据库填充进DataTable之前已经在sql语句中用了to_date(字段,'yyyy-mm-dd'),但TextBox绑定到该字段后仍显示为包括时间的日期格式。数据已经填充进DataTable的状态下,还要一行一行的重新格式化我觉得不够效率,有什么别的办法吗?似乎有个Binding的Fomat或Parse事件可以利用,哪位能不能举个例子?
从数据库填充进DataTable之前已经在sql语句中用了to_date(字段,'yyyy-mm-dd'),但TextBox绑定到该字段后仍显示为包括时间的日期格式。数据已经填充进DataTable的状态下,还要一行一行的重新格式化我觉得不够效率,有什么别的办法吗?似乎有个Binding的Fomat或Parse事件可以利用,哪位能不能举个例子?
Without century (yy) With century (yyyy)
Standard
Input/Output**
- 0 or 100 (*) Default mon dd yyyy hh:miAM (or PM)
1 101 USA mm/dd/yy
2 102 ANSI yy.mm.dd
3 103 British/French dd/mm/yy
4 104 German dd.mm.yy
5 105 Italian dd-mm-yy
6 106 - dd mon yy
7 107 - Mon dd, yy
8 108 - hh:mm:ss
- 9 or 109 (*) Default + milliseconds mon dd yyyy hh:mi:ss:mmmAM (or PM)
10 110 USA mm-dd-yy
11 111 JAPAN yy/mm/dd
12 112 ISO yymmdd
- 13 or 113 (*) Europe default + milliseconds dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 or 120 (*) ODBC canonical yyyy-mm-dd hh:mi:ss(24h)
- 21 or 121 (*) ODBC canonical (with milliseconds) yyyy-mm-dd hh:mi:ss.mmm(24h)
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(no spaces)
- 130* Kuwaiti dd mon yyyy hh:mi:ss:mmmAM
- 131* Kuwaiti dd/mm/yy hh:mi:ss:mmmAM
应该和这个问题差不多
b.Format += new ConvertEventHandler(LongTimeToShort);
textBoxMyDate.DataBindings.Add(b);private void LongTimeToShort(object sender, ConvertEventArgs cevent)
{
cevent.Value = ((DateTime)cevent.Value).ToShortDateString();
}实际上我用了如上代码,效果是出来了,但不知其所以然。
winform
对了,强调一下,是winform应用。