8

フォーム上のカスタムUserControlにいくつかのDateTimePickersがあります。それらは表示されますが、有効になっていません(表示目的のみ)。UserControlの読み込み中、DateTimePickersには、SQLServerストアドプロシージャから返された単一のレコードを格納するDataSetからのDataRowから値が割り当てられます。

DateTimePickerに割り当てられた日付ではなく、今日の日付がユーザーに表示されることがあるという一貫性のない動作があります。必要な日付を.Valueプロパティと.Textプロパティのどちらに割り当てるかは問題ではないようです。

txtstart.Value = (DateTime) dr["Group_Start_Date"];
txtend.Text = dr["Term_Date"].ToString();

上記の2つのステートメントのうち、Valueプロパティを使用するステートメントの方が適切であると思います。ただし、どちらの場合も、データベースにあった値に関係なく、今日の日付がユーザーに表示されます。txtstart.Valueの場合、Visual Studioは、値が期待どおりに割り当てられたことを示します。では、なぜ今日の日付ではなく、その日付がユーザーに表示されないのでしょうか。

4

4 に答える 4

17

私は答えを見つけました。null以外の値を示すには、チェックボックスの値をチェックするように設定する必要があります。

this.dateSold.Checked = true; //必要に応じて、trueまたはfalseに設定しますthis.dateSold.ShowCheckBox = false;

于 2010-03-03T18:33:59.157 に答える
1

.Checked私もこれに問題があり、実際に値をに設定する必要があることがわかりましたTrue

プロパティウィンドウでプロパティを設定しCheckedましたが、それでも機能しなかったため、値を割り当てる前にコードで設定するだけで問題が解決しました。

于 2012-06-08T23:18:51.337 に答える
0

複数の DateTimePickers を使用すると問題が発生するようです。必要な値で DateTimePickers をプログラムで作成し、それらをフォームに追加することで、問題 (バグ?) を回避することができました。

于 2009-11-12T21:55:57.943 に答える
0

結局、AB Nolan の提案に行き着きました。無効になっている DateTimePicker の背後にある理由は、私には明確ではありませんでした。そのため、2009 年 10 月 23 日に戻って、コントロールに煩わされ続けるのではなく、必要な日付を TextBoxes に表示しました。

于 2011-10-27T14:55:05.090 に答える