一个比较郁闷的问题:我用datetimepicker控件,只显示时间,format设为time,显示是没有问题的,如12:10:10; 
问题是我用键盘输入去改变它的值,如输入:12:10:1,如果焦点没有离开datetimepicker控件,我就去点一个按钮,
想让我输入的值显示出来,可是显示的值还是:12:10:10;就是得不到我输入的值:12:10:1; 好像datetimepicker控件
不能结束编辑状态,必须去点别的地方,再去点按钮才可以得到我输入的值?是什么原因?请大家分析一下,谢谢

解决方案 »

  1.   

    我刚才试验了一下,没有出现楼主的问题
    我设想是这样的
    (1)你修改了dateTimePicker1的值,此时dateTimePicker1还有焦点
    (2)你点击了别的控件,此时dateTimePicker1应该失去焦点。
    (3)dateTimePicker1在Leave()事件中会更新dateTimePicker1.Text如果楼主出现这种情况,不如直接在dateTimePicker的Leave事件中强制赋值看看
      

  2.   

    dateTimePicker的Text应该就是你修改后的值,至于Value属性的改变就可能会出现延迟。
      

  3.   

     private void button1_Click(object sender, EventArgs e)
            {
                this.textBox1.Text = this.dateTimePicker1.Value.ToString("HH:mm:ss");
            }没有问题啊,ToString()方法中的格式可以自行设置!
      

  4.   

    private void button1_Click(object sender, EventArgs e) 
            { 
                this.textBox1.Text = this.dateTimePicker1.Value.ToString("HH:mm:ss"); 
                MessageBox.show(this.textBox1.Text.tostring());
            } 
    这样子行吗?不可能吧,我这里始终得不到输入的值啊。
    三楼,
    (2)你点击了别的控件,此时dateTimePicker1应该失去焦点。 
    这应该是对的,但是如果你输入:1:1:1,直接点按钮,这时候dateTimePicker1还没有失去焦点,
    得不到输入的值。请大家试试,谢谢
      

  5.   

    选中其他控件即:使其离开当前DateTimePicker引发验证,如:combobox1.Select();