• 締切済み

c#でスケジューラをスタンドアローン型でつくっています。

c#でスケジューラをスタンドアローン型でつくっています。 Visual c#ではMonthCalendarがもともとあり、それを用いてスケジューラーをつくっています。予定を登録し、リストボックスに予定を表示するようにしています。 しかし、MonthCalendarだとどの日に予定が入っているのかがひと目ではわかりにくく困っています。 一ヶ月の一覧をスケジュール帳のように表示したいと思いやっているのですが、なかなかうまくいきません。 そもそもこれは可能なのででしょうか?? 予定はcsvファイルで保存しています。 どのWindowsフォームを用いたらそのような表示ができるでしょうか?? ちなみに今、考えているのはリストボックスをフォームに縦6×横7に配置し、配列を使いできないかなっと思っているのですがどう思いますか?? 思いついただけなので、これができるかもわからないところです。 参考になることでも良いので 教えてくれませんか?? お願いします。

みんなの回答

  • ape5
  • ベストアンサー率57% (85/148)
回答No.2

クラスにフィールドとして private List<DateTime> lst = new List<DateTime>(); を宣言しておき、スケジュールが追加されるタイミングで、 DateTime型のdateを以下のように追加します。 lst.Add(date); そして、 monthCalendar1.BoldedDates = lst.ToArray(); という感じでするとよいかと思います。

vino149
質問者

お礼

参考になりました。 ありがとうございます。 やってみます。

  • ape5
  • ベストアンサー率57% (85/148)
回答No.1

フォームでは次のプロパティぐらいしかない感じですね。 BoldedDatesです。 使い方は次のような感じです。 DateTime[] arrDT = new DateTime[5]; arrDT[0] = DateTime.Parse("2008/12/02"); arrDT[1] = DateTime.Parse("2008/12/03"); arrDT[2] = DateTime.Parse("2008/12/10"); arrDT[3] = DateTime.Parse("2008/12/23"); arrDT[4] = DateTime.Parse("2008/12/25"); monthCalendar1.BoldedDates = arrDT; セットされた日がボールドになるんですが、わかりづらいです。 一応参考までに。

vino149
質問者

補足

ありがとうございます。 スケジュールを登録させている日付のみを太字にしたいのですが、 どのようにしたらよいかわかりませんか?? また、他に可能な方法とかありますか??