DateTimePicker更改值不会触发值更改事件 - Winforms

时间:2010-11-02 10:23:28

标签: c# winforms datetimepicker

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

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

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

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

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

简而言之,当我在Date或Month部分输入单个数字时,它不会触发ValueChanged事件,但是当我输入两个数字时它会触发。任何人都可以告诉我它为什么会这样吗?这是DTP的预期行为吗?

即使输入单个数字,如何使该事件发生?

1 个答案:

答案 0 :(得分:1)

为了保持一致性和简洁性,该字段需要2位数字,因此应等待两者都输入以触发事件。当你输入1来表示1月时它应该触发,即使它不知道你可能输入10月(0),11月(1)或12月(2)的另一个数字

我希望如果你输入6并且标签将会触发事件。

虽然您可以在TextChanged事件上执行某些操作,但如果您键入一个数字会被解雇但我不确定它在使用鼠标选择日期时会起作用(最好检查一下我回忆起一段时间以来我遇到过没有解雇的问题)