System.Windows.Forms.MonthCalendarで日付の色を変える

MonthCalendarで休日の色を分けたいので調査

Nicke Andersson
The writings of a .NET nut. 
http://nickeandersson.blogs.com/blog/2006/05/_modifying_the_.html

このソースを貼り付けて、クラスを作るとあっさり動いた。
と、思ったけど地雷が多くて一般公開したくない人の気持ちがよくわかった。

例えば、1ヶ月表示でないと、正しい範囲が取得できなくて変になる。
あとはフォントサイズ変えると表示がずれる。

CalendarDimensionsで3x4とかはわかるけど、そこから正確な座標と該当月の取得ロジックを書くのは時間がかかりそうなので断念。このコントロール一杯並べて逃げる。

フォントサイズは9ptと12ptだけ対応した補正を入れて回避。

続きを読む