こんにちは、
ただ今、VB.NET・Visual Studio2005・XP SP3で、
MonthCalendarコントロールを使用したWindowsアプリケーションを作成しております。
そこで、質問なのですが、MonthCalendarコントロールのタイトルの横に付いている前月/次月ボタンを非表示する方法を、
どなたかご存知ならば、ご教授ください。
それに合わせて、MonthCalendarコントロールの表示する月を、
MonthCalendar1.SetDate(New Date(2009, 1, 1))
という記述で設定しているのですが、これでFormを表示させた時に、
2009年1月1日は表示されるのですが、2009年1月1日が選択された状態で、色か変わって表示されてしまいます。
よって、選択された色をバックカラーと同じにしようとしたのですが、これは設定しますと、
タイトル部分も変わってしまって、考えていることと外れてしますのです。
だから、選択を解除する方法か、選択された日付のみ色変更する方法をどなたかご存知でしたら、
ご教授下さい。
よろしくお願いします。
> 前月/次月ボタンを非表示する方法
たとえば
MonthCalendar1.MinDate = #6/1/2009#
MonthCalendar1.MaxDate = #6/30/2009#
などとすれば、それらのボタンを使えなくすることはできますが、
非表示にするのは厳しいでしょう。
あれらのボタンは、実際には単に「描画」されているだけなので、
外部から API で制御できるような物でも無いですし。
> 選択を解除する方法か
日付が選択されていない状態にしたい、という事でしょうか?
それはできないと思います。DateTimePicker であれば、
DateTimePicker1.ShowCheckBox = True
DateTimePicker1.Checked = False
のようにして未選択を表現できますが…。
残念ながら、カレンダーを自作するか、同等機能のコントロールを探してきた方が良いと思います。
> 考えていることと外れてしますのです。
MonthCalendar は基本的に、プロパティ/メソッド/イベントで
用意された事以上のカスタマイズには向いていません。
OS 自身が持つ MonthCalendar コントロールの仕様に引きずられているため、
ここで無理に対処したとしても、Vista/Windows 7 に切り替えたり、
XP の更新プログラムなどによって、細かい部分が変化する可能性もありえます。
http://connect.microsoft.com/VisualStudio/ や
http://connect.microsoft.com/VisualStudioJapan/ で
MonthCalendar に関するフィードバックを探すと、数々の制限が浮き彫りに…。
魔界の仮面弁士様
素早い対応、誠にありがとうございます。
前に同じ環境で、VB・ASP.NETでCalendarコントロールを使用した際には、
前月/次月ボタンの非表示等の制御が、簡単にできたので、こちらの方でもできるかなと思い、
色々思考してみたのですが…。同じカレンダーでも、こちらの方が不便ですね。
>日付が選択されていない状態にしたい
というのは、MonthCalendarのTitleBackColorと初期表示された時、
選択されている日付の箇所が同じ色で表示されてしまうので、それを避けたかったためです。
日付が選択されていない状態なら、初期表示の時、MonthCalendarの日付の箇所が、
全て同じ色で表示されると思い、ご質問させて頂きました。