C#将文本框值传递给datetimepicker

时间:2017-07-31 15:13:48

标签: c# visual-studio

在我的文本框中,我的值为“07-31-2017”。我希望这个值在我的datetimepicker1上传递。所以datetimepicker1可以显示我的文本框的值。

在vb.net中代码如下:

dateTimePicker1.Value = Date.Parse(textbox.Text)

但在C#中如何?

3 个答案:

答案 0 :(得分:1)

dateTimePicker.Value = DateTime.Parse(textBox.Text);

仅在文本框中存在有效的日期时间值时才有效。除非您100%确定格式正确,否则我不建议使用文本框。

还有一个TryParse()选项可确保日期时间正确。

        DateTime newDateTime;

        if (DateTime.TryParse(textBox1.Text, out newDateTime))
        {
            dateTimePicker1.Value = newDateTime;
        }
        else
        {
            // Datetime is invalid
        }

答案 1 :(得分:1)

以@Michael Tralala的回答为基础:

    DateTime newDateTime;

    if (DateTime.TryParse(textBox1.Text, out newDateTime))
    {
        dateTimePicker1.Value = newDateTime;
    }
    else
    {
        // Datetime is invalid
    }

DateTime.TryParse将返回boolean,具体取决于字符串是否可以转换为DateTime。我们可以使用out newDateTime来减少代码和转换的数量,我们基本上保证文本框的值不会在评估之间发生变化。它可能会发生变化的一个例子是多线程应用程序。

此外,我们可以使用ELSE的{​​{1}}来处理意外的转换问题。这比使用IF要好得多,因为DateTime.Parse可能会抛出异常,生成起来可能非常昂贵,具体取决于此代码的使用位置。

答案 2 :(得分:-1)

简单

    public form1()
    {
        InitializeComponent();
        dateTimePicker1.Value =DateTime.Parse( label.Text);
    }

.....