C# DateTimePicker的按键关闭事件

C# DateTimePicker的按键关闭事件,c#,datetimepicker,keydown,C#,Datetimepicker,Keydown,我正在UI中使用此DateTimePicker控件 我希望我的控件的行为类似于当用户按“delete”或“backspace”键时,DateTimePicker控件上显示的值应为空字符串 最初,我通过将其CustomFormat属性设置为空字符串进行管理,以便在UI加载时显示为null 我正在使用KeyDown事件检查/验证用户是否输入了Delete或Backspace键。 请帮忙 玛纳利这应该适合你。在获取新值之前,需要将格式重置回所需格式(长、短、时间、自定义)。在ValueChanged事

我正在UI中使用此
DateTimePicker
控件

我希望我的控件的行为类似于当用户按“delete”或“backspace”键时,
DateTimePicker
控件上显示的值应为空字符串

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

我正在使用
KeyDown
事件检查/验证用户是否输入了Delete或Backspace键。 请帮忙


玛纳利

这应该适合你。在获取新值之前,需要将格式重置回所需格式(长、短、时间、自定义)。在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==DateTimePickerPerformat.Custom,然后在数据库中将该值保存为null


享受吧

是否要删除“选择日期”字符串?如果是,请让我知道我将删除我的答案。非常感谢。这对我有用。应用与检查日期格式并相应传递值相同的方法。:)谢谢哈里斯的帮助。我采用了同样的逻辑。
    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;
    }