如何创建时间轴控件?

时间:2012-01-01 13:49:57

标签: c# winforms

我想创建(或下载,但我找不到任何)时间轴控件。我的想法是这样的:

screenshot

在这张图片中,我只对时间表感兴趣,左边的资源和水平的时间。

有谁能告诉我开发这种控制的好方法是什么?我已经尝试了tablelayout控件,但我现在卡住了,因为我无法计划需要2分钟的事情。我也不想因为性能而每分钟都画一列,看起来太忙了。

3 个答案:

答案 0 :(得分:4)

Telerik和DevExpress对这些类型的东西很了不起,但由于它们不是免费的,使用它们应该对我们穷人来说很难:)。

我可以把这个项目称为原型,因为它需要大量的工作才能适应你想要的地方。 http://www.4shared.com/zip/cGKq8yLt/Timeline.html

如果我在筹码上,任何问题都会得到解答。

修改

对于滚动,最好不要使用滚动控件,因为它会使工作更难。添加两个按钮,一个用于移动到1小时前,另一个用于移动到下一个小时。您可以更改因子1以便大步移动。然后在Paint部分的Draw items事件中,您应该计算当前可见时间的视图端口。这可能有点难。

<强>更新

我看到有人来到这里比我期待的更多,因为我已经从这里删除了以前的源代码,今天我写了一个更好的时间线控件来为其他人下载。你可以从我续订的上述链接中获取它。关于这个新版本的好处是你可以给出这样的时间:9:15或10:48。但是,由于网格在几个小时半的时间内被捕断,它将超出线路。

这是来自源的图片:

enter image description here

答案 1 :(得分:1)

我尚未将其完全集成到Winforms应用中,但我找到了开源Sony ATF Timeline control

Sony AFT Timeline control

它使用MEF(Managed Extensibility Framework)来组装组件,因此我不确定放入标准Winforms应用程序会有多容易。

答案 2 :(得分:0)

Telerik的东西通常很漂亮,但它不是免费的(但比自己做的便宜很多),看看这里http://www.telerik.com/products/winforms/scheduler.aspx

devexpress也有一个http://www.devexpress.com/Products/NET/Controls/WinForms/Scheduler/,它也有免费试用选项