【问题标题】:check when the value of radDateTimePicker has changed检查 radDateTimePicker 的值何时更改
【发布时间】:2013-04-07 08:19:15
【问题描述】:

我有一个 radDateTimePicker 在表单启动时应该有一个空值,我设置它是这样的:

 radDateTimePicker1.NullDate = new DateTime(1900, 1, 1);   
 this.radDateTimePicker1.DateTimePickerElement.SetToNullValue();

点击按钮我检查用户是否已从 1/1/1900 更改日期,如果它仍然是 1900 年 1 月 1 日我将放弃更改,但问题是当用户打开它打开的选择器时日期 1/1/1900 并且让用户循环这些年来到达 2013 年并不方便,所以我将 nullDate 更改为 1/1/2013 以便选择器将在 2013 年 1 月 1 日打开但是如果这样 date 是用户的目标日期,我丢弃了它。

简而言之,我需要一个不会使选择器在 1900 年打开的空值,并且会让我知道用户没有更改值,所以我可以丢弃这个值!?

【问题讨论】:

    标签: c# winforms telerik datetimepicker


    【解决方案1】:

    如果我理解正确,您的要求是在应用程序启动时显示具有空值的日期时间选择器。如果是这样,只需调用 SetToNull 方法 OnLoad:

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
    
            radDateTimePicker1.SetToNullValue();
        }
    

    调用上述方法会将NullableValue设置为null,控件的可编辑部分将不显示任何内容(只是设置了NullText,控件丢失重点)。打开控件将默认为今天的日期。

    【讨论】:

      【解决方案2】:

      我会使用一个简单的类来封装用户可以更改的所有数据,并将其初始化为表单的“起始”数据。

      然后当用户点击表单的“确定”时,将当前表单数据收集到该简单类的另一个实例中。

      然后比较这两个类,看看是否有任何变化,并做出适当的反应。

      我认为这比使用单个控件更灵活和可扩展。这意味着您可以使用当前用户选择的设置填充所有数据控件,或者如果用户尚未选择任何内容,则使用默认值填充所有数据控件,这两种方式都可以。

      【讨论】:

        【解决方案3】:

        考虑使用选择器的ShowCheckBox 功能:

        radDateTimePicker1.ShowCheckBox = true;
        

        读取值时,你可以说:

        var readInput = radDateTimePicker1.Checked
            ? radDateTimePicker1.Value : (DateTime?)null;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-01-16
          • 2020-10-05
          • 1970-01-01
          • 2015-04-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多