我想创建(或下载,但我找不到任何)时间轴控件。我的想法是这样的:
在这张图片中,我只对时间表感兴趣,左边的资源和水平的时间。
有谁能告诉我开发这种控制的好方法是什么?我已经尝试了tablelayout控件,但我现在卡住了,因为我无法计划需要2分钟的事情。我也不想因为性能而每分钟都画一列,看起来太忙了。
答案 0 :(得分:4)
Telerik和DevExpress对这些类型的东西很了不起,但由于它们不是免费的,使用它们应该对我们穷人来说很难:)。
我可以把这个项目称为原型,因为它需要大量的工作才能适应你想要的地方。 http://www.4shared.com/zip/cGKq8yLt/Timeline.html
如果我在筹码上,任何问题都会得到解答。
修改强>
对于滚动,最好不要使用滚动控件,因为它会使工作更难。添加两个按钮,一个用于移动到1小时前,另一个用于移动到下一个小时。您可以更改因子1以便大步移动。然后在Paint
部分的Draw items
事件中,您应该计算当前可见时间的视图端口。这可能有点难。
<强>更新强>
我看到有人来到这里比我期待的更多,因为我已经从这里删除了以前的源代码,今天我写了一个更好的时间线控件来为其他人下载。你可以从我续订的上述链接中获取它。关于这个新版本的好处是你可以给出这样的时间:9:15或10:48。但是,由于网格在几个小时半的时间内被捕断,它将超出线路。
这是来自源的图片:
答案 1 :(得分:1)
我尚未将其完全集成到Winforms应用中,但我找到了开源Sony ATF 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/,它也有免费试用选项