【问题标题】:.NET - How to hide invalid choices in a DateTimePicker.NET - 如何隐藏 DateTimePicker 中的无效选择
【发布时间】:2010-09-13 02:50:27
【问题描述】:

我已经设置了 DateTimePicker 的 MaxDate 和 MinDate 属性。但是,当我在运行时测试控件时,无法区分无效日期和有效日期。唯一的区别是点击无效日期什么都不做。

这对用户来说不是很直观。我希望能够一眼看出有效日期是什么。

有没有办法突出显示有效的日期范围 - 或者更恰当地说,“暗淡”无效的日期?或者,是否有另一个更合适的控制?我确信有几个组合框会起作用,但我真的认为在被要求输入日期时应该向用户显示日历控件。

CONTEXT:这是一个 WinForms 图表应用程序。有效数据的范围是固定的(新数据是通过另一个进程添加的)。用户需要为图表的开始时间(以及持续时间,单独处理)选择日期和时间。

【问题讨论】:

  • 嗯,您在哪个版本的框架上看到了这个?我所有的 DateTimePickers(在 .NET 3.5 SP1 上)根本不显示无效日期。
  • 我在 Vista 上使用 .NET 2.0,而 DateTimePicker 根本不显示最小/最大日期范围之外的日期。

标签: c# datetime controls user-interface


【解决方案1】:

我不确定是否有没有自己扩展控件,并且所有者绘制这将是一种努力。

如果您找不到您想要的功能,我会考虑使用 ErrorProvider 控件并验证用户输入作为一个选项。

【讨论】:

    【解决方案2】:

    我也有类似的问题。我扩展了 DateTimePicker 控件,以便在值更改时运行验证过程,并在发生非法选择时恢复到以前的值或最接近的合法值。

    对此的逻辑扩展是闪现一个警告对话框或标签以通知用户这已经发生。

    您还可以覆盖控件的日历显示部分以突出显示/降低无效选项 - 例如,它已经突出显示当前日期和当前选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      相关资源
      最近更新 更多