2012-11-20 69 views
0

我已經承擔了比我最初認爲的要難的任務 - 考慮到我在這方面缺乏技巧 - 但我仍然決心完成它。在c#中創建一個自定義日曆控件

我想設計一個簡單的自定義窗體窗體控件,顯示一個小的每週日曆。這個想法是我希望它填滿彩色塊,以15分鐘爲增量表示時間使用時間段。任何一天的時間範圍是早上8點到晚上10點,因此在任何一天裏,這個時間範圍是14個小時,每小時4個街區,總共56個街區。實際使用的最小時間間隔是1小時,接下來是1小時15分鐘,然後是2.5小時。我希望能夠通過這種控制,爲大學給定的班級安排一個課程表,通常每週3小時,每天1小時,持續3天。我希望控件查看對象的數據以確定在日曆上需要停用的時間。

現在,這是我的問題。你認爲什麼樣的控制可能是最好的做法?我的第一個想法是使用某種datagridview作爲56行7列的自定義控件的基礎。我相信這不是最好的方法(甚至不是一個很好的方法 - 但這是我能想到的),因爲我無法想象控制方法能夠爲4,5顏色或10個連續的塊。

有沒有人有關於我如何處理這個問題的建議?謝謝。

回答

1

試圖將這種功能強化到現有控件中會相當快速地變得複雜。要使用網格,每次載入新數據對象時,都必須編程更改每個單元格的背景顏色。

作爲一種替代方法,您可以做的是有一個用戶控件,通過GDI +(System.Drawing)繪製所有內容。有控制的背景只是網格線,並手動繪製在該網格頂部的矩形

還有一些第三方控制在那裏,我認爲如果你打開你會找到你想要的東西對於這一點,他們通常會發現谷歌搜索「前景調度控制」