2

DateTimePicker コントロールで奇妙な状況に直面しています。短い日付形式の DateTimePicker コントロールがあります。

このコントロールの値をテキスト ボックスに次のように設定しています。

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
    {
      textBox1.Text = dateTimePicker1.Value.ToShortDateString();
    }

ここで、コントロールの最初のセクションである月を変更しようとすると、2 桁を入力すると ValueChanged イベントが発生し、そうでない場合は発生しません。

たとえば、6 か月目に入るときにキーボードで 6 を押した場合、ValueChanged イベントは発生しません。しかし、0 と 6 を押すと、そのイベントが発生します。11 または 12 を入力すると、ValueChanged イベントが発生します。同じことが日付セクションにも当てはまります。

つまり、日付または月のセクションに1桁を入力してもValueChangedイベントは発生しませんが、2桁を入力すると発生します。なぜこのように振る舞うのか誰か教えてもらえますか?DTPの期待される動作ですか?

1桁の数字を入力してもそのイベントを発生させるにはどうすればよいですか?

4

1 に答える 1

1

一貫性と単純さのために、フィールドは 2 桁なので、両方が入力されるのを待ってイベントを発生させる必要があります。1 月を表すために 1 を入力すると、10 月 (0)、11 月 (1)、または 12 月 (2) の別の数字を入力する可能性があることを認識していなくても、起動する必要があります。

6 を入力してタブを離すと、イベントが発生することが予想されます。

TextChangedマウスを使用して日付を選択するときに機能するかどうかはわかりませんが、1桁の数字を入力すると発生するイベントで何かを実行できる場合があります(少し前に思い出したので確認するのが最善です発火しない問題)

于 2010-11-02T10:37:47.510 に答える