2009-09-09 16 views
6

事実:DateTimePickerデフォルト値:回避するには?

  • 私は2つのタブ付きのTabControlを持って、各タブには、2のDateTimePickerを持っています。
  • Loadイベントでは、すべてのDTPの値を設定します。
  • すべてのDTPのShowCheckBoxesはtrueに設定され、Checkedはfalseに設定されています。
  • プログラムを実行すると、最初のタブのDTPはOKですが、2番目のタブのDTPをチェックすると、ロードイベントに設定した時刻ではなく、現在の時刻が表示されます。

これはどうしてですか?どうすればそれを避けることができますか?

+0

+1私は同様の問題があると思っています。 – reverendlarry

答えて

1

この問題への私の醜い回避策は、上から成り、このような何か:

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には、値の格納と取得に問題があります。 NullReferenceExeptionsがNull値のDateTimeにバインドされるときに問題が発生しました。理由や考えがわからない。時にはちょうど起こって、アプリをクラッシュしました。

0

2つのDateTimePickersを使用して同じ問題に遭遇しました。私は、それらを動的に生成してフォームに追加することで、両方を正しい値を示すようにできました。

3

ここで何が問題なのか分かりました。

プロパティは、DateTimePickerコントロールが表示されている場合にのみ新しい値を設定します。それ以外の場合、コマンドは無視されます。

テストケース:

は動作しません:

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); 

はプログラム的にそれはそうピッカーを追加することとは何かを持っているように見えません。その値を変更する前でDTPの常駐アクティブなタブ設定

+0

こんにちは...これは面白いです...これが私のためにどのように機能するか見ていきます。 – IAbstract

0

あなたはそれが仕事を得ることができない場合は、することができます常に別のピッカーを使用してみてください。 Any+Time(TM) Datepicker/Timepicker AJAX Calendar Widgetは関連フィールドからその値を取り出します。したがって、値でフィールドを初期化するか、値を持つフィールド(onloadなど)を変更すると、ピッカーが表示されたときに取得されます。問題がある場合は、連絡先ページからメッセージを送信してください。すぐに対応されます。

3

これは、datetimepickerのCheckedプロパティと関係がある。通常falseに設定されます。少なくともそれは私の問題でした。

datetimepicker.checkedをtrueに設定した後、設定から値を取得しました。

+0

これは私の似たような問題を解決しました。 – wpcoder

関連する問題