前提・実現したいこと
C#と.NetFrameworkを使用してWebフォームアプリケーションを作成しています。
仕様上DateTimePicerの値をユーザーが入力したくない可能性があるため、空白にする必要があります。
下記の動作で悩んでいるのでアドバイスのご教授お願いします。
「動作手順」
①2020/01/01を選択後
②「Delete」キーを押下
→CustomFormat に「 」(半角スペース)を設定し、見た目上DateTimePicerを空白にする。
③再度①と同じ日付を選択
④DateTimePicerのValue値はすでに①で選択されているものが設定されているため、③の操作をしてもValueChangedイベントが発生せず空白のままになってしまう。
操作手順②で1900/01/01などのユーザーが設定しないであろう日付データを設定してもいいかと思ったのですが、
次にカレンダーマークをクリックすると、1900/01/01が選択されている状態であり、ユーザーとしては非常に使い勝手が悪いです。
ValueChangedイベントが発生すればいいのですが、、、何かこの状況を打破できる案はないでしょうか。
よろしくお願いします。
該当のソースコード
// DateTimePicerキーダウンイベント private void DateTimePicer_KeyDown(object sender, KeyEventArgs e) { // 「Delete」キーが押されたときDateTimePicerの表示を消したいため // カスタムフォーマットを半角スペースにする if (e.KeyData == Keys.Delete) this.InputDate.CustomFormat = " "; } // DateTimePicer入力日変更イベント private void DateTimePicer_ValueChanged(object sender, EventArgs e) => this.InputDate.CustomFormat = "yyyy/MM/dd";
補足情報(FW/ツールのバージョンなど)
NET Core 3.1 SDK
VisualStudio 2019 Professional
回答1件
あなたの回答
tips
プレビュー