2012-11-20 91 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)绘制所有内容。有控制的背景只是网格线,并手动绘制在该网格顶部的矩形

还有一些第三方控制在那里,我认为如果你打开你会找到你想要的东西对于这一点,他们通常会发现谷歌搜索“前景调度控制”