使 Datetimepicker 显示不变的值,直到在下拉日历 C# 中选择一个日期

Make Datetimepicker display unchanged value till picking a date in the dropdown calendar C#

当使用默认的 winform DateTimePicker 时,如果单击下拉菜单,则可以通过鼠标或箭头键滚动(或翻页)日历,显示的 date/time 值会相应更改。有没有办法保持显示的值不受影响,即,如果后端值为空或后端数据库中的固定值,则看似为空(作为 space),直到您真正从日历中选择一个值来覆盖它?

有时客户希望在从日历中选择新值时不断地从后端查看 DateTimePicker 值作为参考。我正在考虑将文本框与日期时间选择器组合在一起以实现此行为,但尚未得出可靠的结论。

我一直在研究这个问题,我相信您想使用“自定义格式”选项。您可能需要稍微尝试一下,但基本上,我添加了一个名为 "ChosenDate" 的 属性(字符串)...然后我将其分配给 "CustomFormat" 属性 datetimepicker1,然后在特写镜头上重置它。试一试这个,看看你是否能让它做你想做的事...

属性

private string _dttime;

public string ChosenDate
{
    get { return _dttime; }
    set { _dttime = value; }
}

在初始化函数中...

ChosenDate = dateTimePicker1.Value.ToShortDateString();
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = ChosenDate;
dateTimePicker1.CloseUp += dateTimePicker1_CloseUp;

处理函数

void dateTimePicker1_CloseUp(object sender, EventArgs e)
{
    ChosenDate = (sender as DateTimePicker).Value.ToShortDateString();
    dateTimePicker1.CustomFormat = ChosenDate;
}