datetimepicker select 下拉列表后的值而不是下拉 C#

datetimepicker select a value after dropdown instead of on dropdown C#

我在 winform 上有一个日期时间选择器问题。加载表单时,我将日期时间选择器初始化为

DateIdentifier.Format = DateTimePickerFormat.Custom;
DateIdentifier.CustomFormat = " ";
DateIdentifier.Value = DateTime.Now;

然后,它从 datagridview 中检索值,datagridview 又从后端 table 获取数据源,如下所示:

if (Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells["DateIdentified"].Value) == "")
{
    DateIdentifier.CustomFormat = " ";
    DateIdentifier.Text = null;
}
else
{
   DateIdentifier.CustomFormat = "yyyy-MM-dd";
   DateIdentifier.Text = Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells["DateIdentified"].Value);
}

到目前为止它工作正常,但是当我点击下拉按钮时,当前日期时间戳将覆盖从数据库检索的任何日期时间,我猜这是因为我设置了 DateIdentifier.Value = DateTime.Now。有什么方法可以维护 datetimepicker 的文本框,当下拉菜单被点击时显示来自 datagridview 的值,并且只有当我真正 select 伴随日历中的日期时,新选择的日期才会显示在 datetimepicker 的文本框中?

谢谢。

您没有设置日期时间选择器的 selectedDate。

   if (Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells["DateIdentified"].Value) == "")
    {
        DateIdentifier.CustomFormat = " ";
        DateIdentifier.Text = null;
    }
    else
    {
       DateIdentifier.CustomFormat = "yyyy-MM-dd";
       DateIdentifier.SelectedValue = DateTime.Parse(dataGridView1.Rows[e.RowIndex].Cells["DateIdentified"].Value);
    DateIdentifier.Text = Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells["DateIdentified"].Value);
    }