C# 日期时间选择器操作

C# 日期时间选择器操作,c#,winforms,datetime,datetimepicker,C#,Winforms,Datetime,Datetimepicker,我试图用textchange事件操纵datetimepicker的值 private void txtStay_TextChanged(object sender, EventArgs e) { dateTimePicker2.Text = dateTimePicker2.Value.AddDays(Convert.ToInt32(txtStay.Text)).ToString(); } 但是当我按下backspace来更改文本框中的值时,我遇到了问题,这导致了一个错误。我想做的是,当

我试图用textchange事件操纵datetimepicker的值

private void txtStay_TextChanged(object sender, EventArgs e)
{
    dateTimePicker2.Text = dateTimePicker2.Value.AddDays(Convert.ToInt32(txtStay.Text)).ToString();
}

但是当我按下backspace来更改文本框中的值时,我遇到了问题,这导致了一个错误。我想做的是,当我按下backspace键时,它将使用文本中的剩余数字更改日期的值。

我不确定您的最终目的,但为了解决值错误,请在事件中添加以下代码

        int days=0;
        Int32.TryParse(txtStay.Text, out days);
        dateTimePicker2.Text = dateTimePicker2.Value.AddDays(days);
它应该会起作用

但是,您不应该添加与任何固定日期(不是日期选择器的当前日期)相关的日期

我的意思是,如果您更改文本框中的值,它将继续增加天数

-----编辑-----

要获得正确的日期,请使用此选项

    dateTimePicker1.Value = DateTime.Today.AddDays(days);

上面是以当前日期为基准日期,但您必须以DateTimePicker1开始日期为基准日期。

您面临的例外情况是什么?还有,为什么你要设置DateTimePicker的text属性而不是直接设置值呢?tnx先生..我已经解决了这个错误..我现在的问题是..如何在我点击backspace时减少天数。比如说,从文本框中..我输入12,天会增加到天,但是如果我按backspace从12中删除'2',天会减少,只会增加1天..明白了!非常感谢,先生!