2009-09-09 94 views
6

Facts:DateTimePicker默認值:如何避免它?

  • 我有一個TabControl與2個選項卡,每個選項卡有2個DateTimePicker。
  • 在Load事件中,我設置了所有DTP的值。
  • 所有的DTP都將ShowCheckBoxes設置爲false,並將其設置爲false。
  • 當我執行程序時,第一個選項卡中的DTP是正常的,但是當我檢查第二個選項卡上的DTP時,它們顯示當前時間,而不是我在加載事件中設置的時間。

爲什麼會發生這種情況?我怎樣才能避免它?

+0

+1因爲我覺得我有類似的問題。 – reverendlarry 2009-10-23 18:11:50

回答

1

我的醜的解決方法這個問題,包括在設置活動選項卡中的DTP的駐留改變它的值,這樣的事情之前:

DateTime dat1 = DateTime.Today; 
DateTime dat2 = dat1.AddDays(1).AddSeconds(-1); 

dtpCreatedStart.Value = dat1; 
dtpCreatedEnd.Value = dat2; 
tbc.SelectTab(1); 
dtpModifiedStart.Value = dat1; 
dtpModifiedEnd.Value = dat2; 
tbc.SelectTab(0); 
0

DateTimePicker在存儲和檢索它的值方面存在一些問題。將Value綁定到不可空的DateTime時遇到了麻煩 - 我不時地得到NullReferenceExeptions。不知道爲什麼或何時。它有時只是發生和崩潰的應用程序。

0

我剛剛遇到了使用兩個DateTimePickers相同的問題。我能夠通過動態生成它們並將它們添加到表單中,讓它們都顯示正確的值。

3

我發現問題出在這裏。

如果DateTimePicker控件可見,則Value屬性僅設置新值。否則命令被忽略。

測試用例:

不起作用:

this.picker = new DateTimePicker 
     { 
      Checked = false, 
      Font = new System.Drawing.Font("Verdana", 9.75F), 
      Format = System.Windows.Forms.DateTimePickerFormat.Time, 
      Location = new System.Drawing.Point(5, 5), 
      Name = "picker", 
      ShowUpDown = true, 
      Size = new System.Drawing.Size(120, 23), 
      Visible = false 
     }; 
     this.Controls.Add(this.picker); 
     this.picker.Value = this.picker.Value.Date.AddHours(1); 
     this.picker.Visible = true; 

作品:

this.picker = new DateTimePicker 
     { 
      Checked = false, 
      Font = new System.Drawing.Font("Verdana", 9.75F), 
      Format = System.Windows.Forms.DateTimePickerFormat.Time, 
      Location = new System.Drawing.Point(5, 5), 
      Name = "picker", 
      ShowUpDown = true, 
      Size = new System.Drawing.Size(120, 23), 
      Visible = false 
     }; 
     this.Controls.Add(this.picker); 
     this.picker.Visible = true; 
     this.picker.Value = this.picker.Value.Date.AddHours(1); 

不會出現有什麼用編程方式將它似乎是選擇器。

+0

嗯......這很有趣...我會看看這可以爲我工作。 – IAbstract 2010-11-24 23:30:18

0

如果你不能得到它的工作,你可以總是嘗試使用不同的選擇器。 Any+Time(TM) Datepicker/Timepicker AJAX Calendar Widget從相關字段中提取其值,因此如果您使用值初始化字段,或者將字段更改爲具有值(例如在onload中),那麼這就是顯示選擇器時的結果。如果您遇到問題,只需通過聯繫頁面提交一條消息,並儘快解決。

3

它與datetimepicker的Checked屬性有關。它通常設置爲false。至少這是我的問題。

將datetimepicker.checked設置爲true後,它確實從設置中檢索值。

+0

確實這解決了我的類似問題,很奇怪! – wpcoder 2017-08-08 03:17:34