日期:2014-05-17  浏览次数:22153 次

100分求: winform中如何动态画流程图?
 现工作上有一要求,就是画出一个审批的流程图,能拖动矩形,能连接二个矩形画一个带箭头的线,矩形中可以添加字和图片.
向各位大侠请教.


样子就是这样的:

------解决方案--------------------
workflow
------解决方案--------------------
VS2010里面的新功能可以直接画图。
------解决方案--------------------
两个思路:
1) 用visio实现
2) 自己做类似的控件,控件里面可以写文字那种
------解决方案--------------------
一个很简单的实例,可以作为参考:)

http://d.download.csdn.net/down/1848874/cicade
------解决方案--------------------
引用:
现在又发现一个问题:
       在WinForm中画出线后,点击其它新的窗体(遮住了Winform),那么画的线就不存在了,怎么解决?


画线部分代码写在paint事件里。
------解决方案--------------------
定义一下类, 用于存贮你要画的图形的各项值, 
线,框等全部从这个类继承.

然后定义一个控件, 实现画的方法,及实现所有你可能要用的到key与mouse.

如实现选中文本框, 只要重写mouseclick事件就可以, 
如果要双击编辑, mousedbclick时, 插入一个textbox进去编辑,
------解决方案--------------------
看到同行,真的感慨啊~我都纠结2-3个月了~

拖动图形以后,图形可以触发一个方法,就是让连接线重新计算路径~

link对象和node对象要有互相关联,link对象里要有2个node对象,node对象里要有一个林肯对象的集合~

你的连接线如果只是两点直接的线段的话就重新计算起点和端点就好了,如果不允许斜线,只能直角弯神马的,还要考虑自动避开其他的矩形~自动寻路~

我的Q是1784885733,可以详细的说~我这有个外国的开源控件AddFlow,我就是在它的基础上自己改的~
------解决方案--------------------
引用:
thanks, 重绘的方法写在了Panel_paint中,就不会出现消失的现象,但是如何在拖动控件时画的线也跟着一起动呢,本人是新手,向各位大虾请教了

MouseMove什么的事件,就可以实现边拖边画线。楼主这东西太难,过来帮顶,等高手
------解决方案--------------------
其实不难,主要是数据保存的问题,如果你做过五子棋这个游戏,那就好办了,在你画的时候将每个对象都用一定的格式保存起来,比如数组就可以用来保存一些数据,当然这里不一定用它。然后就是拖动问题,拖动效果可以用MouseDown、MouseMove、MouseUp来实现,在拖动时就要重绘,重绘就要将保存的数据进行解析 画出来,每次拖动后,再将新的数据保存进去,进行数据更新,你所说的箭头无法移动,其实就是没有将箭头进行重绘,你可以在拖动矩形的时候同时重绘箭头。只要你会拖动操作这应该不是问题了,如果不知道就可以baidu一下 "winform无边框拖动问题"
------解决方案--------------------
你也可以这样试下:不用绘图,直接用微软提供的那基本控件放在上面,也就是动态加添控件,添加上去后还是用MouseDown、MouseMove、MouseUp这三个事件对添加的控件进行改变,比如大小,坐标,如果你感觉微软提供的控件不好看,你完全可以自定义控件,比绘图要好做得多