我有问题。我已将DateTimePicker的maxdate值设置为31/12/2030。实时当我点击DateTimePicker的左上角图标时,控件会自行冻结一段时间,然后将页面更改为预览月份,将其自动设置为maxdate值。如果我将最大日期设置为更大的日期(例如31/12/2100),控制将冻结5-6秒。发生了什么事?
PS:我正在研究C#WinForms。
编辑:
DateTimePicker对象名为“dela”。我为这个对象编写的代码是......
private void dela_KeyDown(object sender, KeyEventArgs e)
{
switch(e.KeyCode)
{
case Keys.Up:
KeyUpDown = true;
break;
case Keys.Down:
KeyUpDown = true;
break;
}
}
private void dela_ValueChanged(object sender, EventArgs e)
{
if (KeyUpDown == false)
{
SendKeys.Send("Right");
}
}
答案 0 :(得分:1)
只是在这里猜测,但可能是你的dela_ValueChanged
函数被重复调用而未设置KeyUpDown。所以这意味着它反复做SendKeys.Send("Right")
(假设这会改变日期前一天?),直到它到达最后一个日期,当它试图改变超过最后日期时它不能这样它不会改变它的值,从而走出循环。
答案 1 :(得分:0)
“datekeyspicker的valuechanged事件中的”Sendkeys.send(“/”)“。