2010-11-02 144 views
2

我面临奇怪的情况与DateTimePicker控件。我有一个DateTimePicker控件与短日期格式。DateTimePicker更改值不会触发值更改事件 - Winforms

我设置这种控制在以下方式文本框的值:

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事件,但当输入两位数字时会触发ValueChanged事件。有谁能告诉我为什么这样做?预计DTP的行为?

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

+1

按设计,一个数字是不明确的。你需要妥善处理。 – 2010-11-02 13:22:53

回答

1

为了一致性和简单性,该字段需要2位数字,因此应该等待输入这两个数字才能触发事件。如果它输入1代表一月份时触发,即使它不知道您可能会输入另一个数字作为Oct(0),Nov(1)或Dec(2)

如果您输入6并退出该事件将触发。

尽管您可能可以在TextChanged事件上做些事情,但如果您键入单个数字,该事件应该会被解雇,但我不确定使用鼠标选择日期时它会起作用(最好检查一下一段时间后,我有问题,它不射击)

相关问题