DateTimePicker的key_down事件

时间:2011-05-16 10:40:46

标签: c# datetimepicker keydown

我在 UI 中使用此DateTimePicker控件。

我希望我的控件的行为类似于用户按下“删除”或“退格”键时DateTimePicker控件上显示的值应为空字符串。

最初我通过将其CustomFormat属性设置为空字符串进行管理,以便在 UI 加载时显示为null。

我正在使用KeyDown事件检查/验证用户是否已输入删除 Backspace 键。 请帮助。

马那里

2 个答案:

答案 0 :(得分:2)

  private void date_KeyDown(object sender, KeyEventArgs e)
        {
            if(e.Key == Key.Back || e.Key == Key.Delete)
                date.SelectedDate = null;
        }

答案 1 :(得分:2)

这对你有用。在获得新值之前,您需要将格式重置为所需的格式(长,短,时间,自定义)。在ValueChanged事件中执行此操作。

    private void dateTimePicker1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Delete || e.KeyCode == Keys.Back)
        {
            dateTimePicker1.Format = DateTimePickerFormat.Custom;
            dateTimePicker1.CustomFormat = " ";
        }
    }

    private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
    {
        dateTimePicker1.Format = DateTimePickerFormat.Long;
    } 

保存dateTimePicker的值时,可以测试dateTimePicker1.Format == DateTimePickerFormat.Custom,然后将值保存为数据库中的null。

享受!