2017-07-31 101 views
-2

在我的文本框中,我的值爲「07-31-2017」。我希望這個值在我的datetimepicker1上傳遞。所以datetimepicker1可以顯示我的文本框的值。C#將文本框的值傳遞給datetimepicker

在vb.net

的代碼是這樣的:

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

但在C#怎麼樣?

+1

你需要提高你的研究技能。 – LarsTech

回答

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 
     } 
+2

當你在'out newDateTime'中有值時,第二次使用'.Parse()'有什麼意義? –

1

建設上@邁克爾的Tralala的回答是:

DateTime newDateTime; 

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

的DateTime.TryParse將取決於如果字符串可以轉換爲DateTime返回boolean。我們可以使用out newDateTime來減少代碼和轉換的數量,並且基本保證文本框的值在評估之間不會改變。一個可能會改變的例子是一個多線程應用程序。

此外,我們可以使用IFELSE來處理意外的轉換問題。這比僅使用DateTime.Parse好很多,因爲DateTime.Parse可能會拋出一個異常,這可能是非常昂貴的生成,具體取決於使用此代碼的位置。

+0

你說得對,我已經更新了答案,謝謝! –

相關問題