在c#中创建自定义日历控件

时间:2012-11-20 21:33:45

标签: c# winforms user-controls

我已经接受了比我最初想象的更难做的事情 - 考虑到我在这方面缺乏技巧 - 但我仍然决定完成它。

我正在尝试设计一个简单的自定义窗体控件,显示一个小的每周日历。我的想法是,我希望它填充彩色块,表示时间使用的时间段,增量为15分钟。任何一天的时间范围是早上8点到晚上10点,所以14小时每小时4个街区,任何一天总计56个街区。实际使用的最小时间间隔是1小时,接下来是1小时15分钟,然后是2.5小时。我希望能够将一个对象代表一个对象,该对象代表大学中给定课程的课程安排,通常每周工作3小时,每天工作1小时,持续3天。我希望控件查看对象的数据,以确定需要在日历上停电的时间。

现在这是我的问题。你认为最好能达到什么样的控制?我的第一个想法是使用某种datagridview作为我的自定义控件的基础,有56行和7列。我敢肯定这不是最好的方法(也不是一个非常好的方法 - 但这是我能想到的全部),因为我想不出一种方法可以让控件能够着色4,5或连续10个街区。

有人建议如何处理这个问题吗?感谢。

1 个答案:

答案 0 :(得分:1)

试图将该功能强加到现有控件中会很快变得复杂。要使用网格,每次加载新数据对象时,您都需要以编程方式更改每个单元格的背景颜色。

作为替代方案,你可以做的是拥有一个用户控件,只需通过GDI +(System.Drawing)绘制所有内容。让控件的背景只是网格线,并在该网格顶部手动绘制矩形

还有一些第三方控件,如果你对此持开放态度,我认为它会给你你所寻找的东西,他们通常被发现谷歌搜索" outlook scheduler controls"