【问题标题】:WinForms - DateTimePicker default month selection behavior for Server 2003 vs Server 2008?WinForms - Server 2003 与 Server 2008 的 DateTimePicker 默认月份选择行为?
【发布时间】:2010-05-21 18:00:33
【问题描述】:

下午好!

有没有其他人注意到标准 WinForms DateTimePicker 控件中“下一个”和“上一个”月份箭头的默认行为发生了变化?我有用户在 Windows Server 2003 和 Windows Server 2008 R2 上运行,他们报告说在 2008(和 Vista/Win7)上,单击下拉日历上的右箭头或左箭头现在选择一个月的第一天,而不是而不是像 2003(和 XP)那样保留同一天。

我已经检查过了(我有一台 Win7 机器)并且我已经确认了这种行为。我希望行为尽可能保持一致。有谁知道是什么原因造成的,是否有办法解决这个问题?有没有办法捕获箭头单击事件并强制生成的日期保留原始日期而不是重置为每月的第一天?

我想看看是否有办法在 MouseUp 事件上对控件进行命中测试并确定是否单击了箭头按钮,然后覆盖正在设置的月份值,但我不确定这是否是偶数可能的。任何人都可以提供一些智慧或见解吗?谢谢!

【问题讨论】:

    标签: .net winforms windows-server-2008 windows-server-2003 datetimepicker


    【解决方案1】:

    DateTimePicker 是一个原生 Windows 控件,.NET 类是它的包装器。是的,自 Vista 以来,该本机控件的一些外观变化。您不应该修复行为,用户会认为您的控件具有非标准行为,因为它的行为与在该操作系统上运行的不同程序显示的所有其他行为不同.

    【讨论】:

    • 确实如此,但我的用户群很小(只是我工作的公司),是他们引起了我的注意。我确实在其他应用程序中使用了 DTP,一般的想法是,如果有修复或破解可以解决问题,那么我可以为控件编写扩展,或者只是将代码应用于我使用控件的任何地方.当然,如果没有解决办法(昨天我花了相当多的时间尝试了很多不起作用的东西),那么他们只需要理解(即使我不理解(- :)。谢谢,汉斯。这确实很有道理。
    • 是的,没有什么好的方法可以解决这个问题。除了对月历进行子分类的困难之外,MCN_SELCHANGE 消息不会让您确切地发现所选日期是如何更改的。切换到 Win7 后,每个人都会停止抱怨。
    • 我还注意到 ComboBox 的默认行为也发生了变化,在下拉模式下。过去,您可以使用文本搜索或箭头键选择您想要的项目,然后在仍然下拉的同时从控件中跳出标签,并使值保持您导航到的位置。现在,如果您不按 Enter 接受该值,它会在您退出时选择下一个。去图...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多