2

我正面临 DateTimePicker 控件的奇怪情况。我有一个短日期格式的 DateTimePicker 控件。

我通过以下方式在文本框中设置此控件的值:

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
    {
      textBox1.Text = dateTimePicker1.Value.ToShortDateString();
    }

现在,当我尝试更改控件中的第一部分的月份时,如果我输入两位数,它会触发 ValueChanged 事件,否则不会。

比如说,例如我试图进入第 6 个月并且我在键盘上按 6,这一次 ValueChanged 事件不会触发。但是当我按 0 和 6 时,它会触发该事件。如果我输入 11 或 12 它会触发 ValueChanged 事件。同样适用于日期部分。

简而言之,当我在日期或月份部分输入一位数时,它不会触发 ValueChanged 事件,但当我输入两位数时它会触发。谁能告诉我为什么它会这样?这是 DTP 的预期行为吗?

即使我输入个位数,如何让它触发该事件?

4

1 回答 1

1

为了一致性和简单性,该字段采用 2 位数字,因此应等待输入两个数字以触发事件。当您输入 1 表示一月时它是否应该触发,即使它不知道您可能会为 Oct (0)、Nov (1) 或 Dec (2) 输入另一个数字

我希望如果您输入 6 并使用 tab 键,该事件会触发。

尽管您可能可以对TextChanged事件执行某些操作,如果您键入一个数字,则应该触发该事件,尽管我不确定在使用鼠标选择日期时它是否会起作用(最好检查一下,因为我记得前一段时间我有它没有触发的问题)

于 2010-11-02T10:37:47.510 回答