0

この分野でのスキル不足を考えると、最初に思っていたよりも少し難しいことをするという仕事に取り掛かりましたが、それでもやり遂げる決心をしています.

小さな週間カレンダーを表示する単純なカスタム Windows フォーム コントロールを設計しようとしています。アイデアは、15 分単位でタイムスロットを使用した時間を示す色付きのブロックでいっぱいにしたいということです。任意の日の時間範囲は午前 8 時から午後 10 時までなので、1 時間あたり 4 ブロックで 14 時間、任意の日に合計 56 ブロックになります。実際に使用される最小の時間間隔は 1 時間で、次に 1 時間 15 分、次に 2.5 時間です。このコントロールに、大学の特定のクラスのクラス スケジュールを表すオブジェクトを渡すことができるようにしたいと考えています。これは通常、週 3 時間、1 日 1 時間、3 日間行われます。コントロールがオブジェクトのデータを見て、カレンダーでいつブラックアウトする必要があるかを判断したいと考えています。

ここで私の質問です。これを達成するには、どのような制御が最適だと思いますか? 私が最初に考えたのは、56 行 7 列のカスタム コントロールの基礎として、ある種の datagridview を使用することでした。コントロールが4、5のいずれかに色を付ける方法が思いつかないので、これが最適な方法ではないと確信しています(非常に良い方法でもありませんが、私が考えることができるのはそれだけです)。または 10 連続ブロック。

これにどのようにアプローチできるかについて誰か提案がありますか? ありがとう。

4

1 に答える 1

1

その機能を既存のコントロールに押し込もうとすると、すぐに複雑になります。グリッドを使用するには、新しいデータ オブジェクトをロードするたびに各セルの背景色をプログラムで変更する必要があります。

別の方法として、GDI+ ( System.Drawing )を介してすべてを描画するだけのユーザー コントロールを用意することもできます。コントロールの背景をグリッド線だけにして、そのグリッドの上に長方形を手動で描画します

サードパーティ製のコントロールもいくつかあります。それを受け入れれば、探しているものが得られると思います。通常、「outlook scheduler controls」をグーグルで検索すると見つかります。

于 2012-11-20T22:25:48.760 に答える