Winforms:创建动态时间轴控件

时间:2010-12-27 20:31:54

标签: c# .net winforms user-controls controls

我需要创建一个winforms控件,看起来像这样:

alt text 目前我正在考虑拍摄一个图片框/面板并覆盖onpaint事件并自己绘制所有内容。但不知何故,这种做法似乎并不正确。

我想知道是否有更简单的出路或更好的解决方案? 你会如何制作这样的控件?

3 个答案:

答案 0 :(得分:3)

不,这是正确的方法。尝试使用类似TableLayoutPanel的东西不仅令人痛苦,而且还会吸收严重的泥浆,需要花费一秒钟或更长时间来绘制自己。它需要一堆代码,但它不是硬代码。还有大量的循环机会。

使用面板的AutoScrollMinSize获取滚动视图。使用Graphics.TranslateTransform()在Paint事件或OnPaint覆盖中传递AutoScrollPosition。建议使用后者,从Panel派生自己的控件以保持代码分离。你在这里有很多灵活性来定制外观,玩得开心。

答案 1 :(得分:1)

我最后一次做这样的事情时,我将网格作为位图,将图像加载到图片框中,然后直接在图像上绘制。使用paint事件的问题是,除非你不断重绘它,否则它不会持续存在。

答案 2 :(得分:0)

覆盖文本控件或从CompositeControl类继承然后使用HTML(表格)和Javascript渲染它而不是绘制它可能更容易。