0

考虑到我在这方面的技能不足,我已经承担了做一些比我最初想象的更难的任务,但我仍然决心完成它。

我正在尝试设计一个简单的自定义 Windows 窗体控件,该控件显示一个小的每周日历。这个想法是我希望它用彩色块填充,以 15 分钟为增量指示使用的时间段。任何一天的时间范围是上午 8 点到晚上 10 点,所以这是 14 小时,每小时 4 个区块,在任何一天总共有 56 个区块。实际使用的最小时间间隔是 1 小时,其次是 1 小时 15 分钟,然后是 2.5 小时。我希望能够将一个对象传递给该控件,该对象表示大学中给定课程的课程表,该课程通常每周进行 3 小时,每天 1 小时,持续 3 天。我希望控件查看对象的数据以确定它需要在日历上黑屏的时间。

现在这是我的问题。您认为哪种控制方式最适合实现这一目标?我的第一个想法是使用某种 datagridview 作为我的自定义控件的基础,它有 56 行和 7 列。我确信这不是最佳的方法(甚至不是一个非常好的方法 - 但这是我能想到的),因为我想不出一种方法可以让控件为 4、5 着色或 10 个连续的块。

有人对我如何解决这个问题有建议吗?谢谢。

4

1 回答 1

1

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

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

还有一些第三方控件,我认为如果你愿意的话,它们会给你你正在寻找的东西,他们通常会在谷歌上搜索“outlook scheduler controls”

于 2012-11-20T22:25:48.760 回答