在datetimepicker上选择日期
对这个日期进行判断
如果条件不满足,则弹出一个对话框,当你用鼠标点击对话框后,
datetimepicker的日期会一直延着你刚才选择日期的方向变化,
如果条件一直不能满足,则一直弹出对话框,直到你的电脑当机。
我用的VS2008 winform
不知道大家有没有碰到过?
又是怎么解决的或者需要怎么解决?下面为代码:
        void dateTimePicker5_ValueChanged(object sender, EventArgs e)
        {
            if (dateTimePicker5.Value > DateTime.Parse("2000-01-01"))
            {
                MessageBox.Show("日期不合法!");
            }
        }

解决方案 »

  1.   

    别在ValueChanged事件中判断,你可以在leave事件中进行判断不就可以了
      

  2.   

            private void dateTimePicker1_Leave(object sender, EventArgs e)
            {
                if (dateTimePicker1.Value > DateTime.Parse("2000-01-01"))
                {
                    MessageBox.Show("日期不合法!");
                } 
            }这样就没问题了
      

  3.   

    确实有问题,
    你可以在CloseUp事件里判断.        private void dateTimePicker1_CloseUp(object sender, EventArgs e)
            {
                if (dateTimePicker1.Value > DateTime.Parse("2000-01-01"))
                {
                    MessageBox.Show("日期不合法!");
                } 
            }效果和你的一样.
      

  4.   

    这就是一个BUG,也有很多人问了,避免这种逻辑吧.
      

  5.   

    我没发现这个问题,弹出对话框控件的值就是我刚刚选中的
    就事论事?既然你做的是验证,且不能大于2000-01-01
    1、你在加载界面时就应该把这个控件的初始值设置小于2000-01-01的(要不你自己与你自己的条件冲突,明明小于2000的,为什么初始值来一个2009)
    、当你选择错误的日期时提示过后应自动回到初始值.这本身就是值发生改变的事件.我不认为这是BUG,而是你实现的思路上面就有问题,这只是一个开发工具而已.
      

  6.   

    而且我完全复制了你的代码测试的,环境也是VS 2008
    没出现所谓的"BUG"