【问题标题】:Override shown placeholder by DateTimePicker通过 DateTimePicker 覆盖显示的占位符
【发布时间】:2019-01-07 19:47:07
【问题描述】:

覆盖DateTimePicker 显示的默认值的最简单方法是什么。

我的意思是它默认显示7/31/2018,但我希望它默认显示DD/MM/YYYY,让用户知道DateTime 所需的模式是什么。

不是格式,我说的是显示值。

所以要显示 'D', 'D', '/', 'M', 'M', '/', 'Y', 'Y', 'Y', 'Y ' 个字符。

我最好的想法是通过UserControl 制作我自己的 DateTimePicker。

我的问题有更好的解决方案吗?

所以 DateTimePicker 现在看起来像这样:

但我希望它默认显示:

【问题讨论】:

  • 默认显示的格式是计算机的区域格式。如果显示MM/dd/yyyy,则您的计算机很可能也是该格式
  • 我不是在谈论格式。我说的是确切的显示值。
  • 格式就是这样,控件上显示的文本。该值是一个没有格式的DateTime 实例。
  • 你试过设置 `MyPicker.Value' 吗?
  • 如果你想要winforsm的占位符,你可以编写自定义控制器,例如social.msdn.microsoft.com/Forums/windows/en-US/…

标签: c# user-controls windows-forms-designer


【解决方案1】:

据我了解,您需要带有文本“DD/MM/YYYY”的占位符,但 Windows 预定义控件中不支持 占位符,如果您需要 winforms 中的占位符,则必须创建 自定义控件

为日历创建自定义控件并根据您的要求对其进行自定义。

【讨论】:

    【解决方案2】:

    在您的计划开始时,将文化设置为英国(或任何您需要的):

    void Main()
    {
       CultureInfo.Current = new CultureInfo("en-GB");
    
    }
    

    您可能还需要设置当前线程的文化。 This page 提供更多信息。

    【讨论】:

    • 不是格式,我说的是显示的值。
    • 这是一个令人困惑的问题,因为您显示的值是 mm/dd/yyyy,而您想显示 dd/mm/yyyy。哪种格式正确?
    猜你喜欢
    • 1970-01-01
    • 2011-08-02
    • 2022-08-16
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 2014-02-17
    • 1970-01-01
    相关资源
    最近更新 更多