CSMemo034

DateTimePickerに気をつける

ValueChangedイベントで月めくりが暴走

ValueChangedイベントメソッドでメッセージボックスを表示させる場合、
月めくりによってValueChangedが発生すると
ひとりでに月がめくられ続ける、という現象がある模様。

1つめのメッセージボックスは正常に表示されるものの、
それに対して「OK」ボタンを押すとあとは自動的に月めくりされ続ける。

バグでしょこれ。

対応策としては、ValueChangedではなくCloseUpイベントを用いる。

■ヤスダ式仕事日記: DateTimePickerで日付の判定
http://yasuda-style.blogspot.jp/2011/06/datetimepicker.html

★ ★ ★

意地でもValueChangedでやってみる!とか試してみましたが

  • イベントの始まりと終わりでイベントメソッドの付けはずし⇒だめ
  • イベントが始まるときにSendKeysでESC押下を送信してカレンダーを閉じさせる⇒だめ いずれも「自動月めくり」の暴走を止めることができませんでした。

まあそもそもValueChengedでメッセージボックスなんか表示しちゃいかんというか、
そもそもDateTimePickerなんか使っちゃいかん、といったところでしょうか。

丸岡先生の「絶対現場主義Visual C#実践講座」にもそう書いてあるし。

最終更新:2013年06月11日 09:20