2017-02-16 21 views
-1

私はアプリケーションを開発しています。最初は月曜日のみを選択できるようにしたかったのです。かなりの時間を費やした後、私は自分のコントロールを作成しない限り、それは可能ではないことが分かった。monthCalendarコントロールで毎週月曜日を太字にするにはどうすればよいですか?

したがって、私は月曜日の太字をどのようにして(そして背景色を変えても)どうやって目立つようにするのか知りたかったですか?

週に何日選択されていても、月曜日(同じ週の)をプログラムで選択する方法はありますか?

たとえば、2/16をクリックすると、2/13が自動的に選択されます。

答えて

1

私はこれをdatetime picker value changedイベントで行っています。 動作するようです。それが役に立てば幸い!

private void dtP1_ValueChanged(object sender, EventArgs e) 
     { 
      var days = DayOfWeek.Monday - dtP1.Value.DayOfWeek; 

      if (dtP1.Value.DayOfWeek != DayOfWeek.Monday) 
      { 
       dtP1.Value = new DateTime(dtP1.Value.Year, dtP1.Value.Month, dtP1.Value.Day + days); 
      } 

     } 

私はそのための書き込み方法と拡張方法を管理しています。

public static class DateTimeHelper 
    { 
     public static void AlwaysChooseMonday(this DateTimePicker dtp, DateTime value) 
     { 
      var days = DayOfWeek.Monday - dtp.Value.DayOfWeek; 

      if (dtp.Value.DayOfWeek != DayOfWeek.Monday) 
      { 
       dtp.Value = new DateTime(dtp.Value.Year, dtp.Value.Month, dtp.Value.Day + days); 
      } 
     } 
    } 

その後、値が変更されたイベントは、ちょうど

private void dtp1(object sender, EventArgs e) 
     { 
      dtP1.AlwaysChooseMonday(dtP1.Value); 
     } 

ロット滑らかな印象になります。

+0

ありがとうございました。私はmonthCalendarを使用しており、ValueChangedのイベントはありません。私は同等の出来事が何であるかを見るでしょう。奇妙なことに、前月に月曜日に発生した日付を選択すると失敗します(2/3/17を選択し、ブームクラッシュ) –

関連する問題