C#(.net)(Winform的)关于两个控件之间连线的问题!!!!急急!!!高分求解决。。。
我想通过点击一个按钮,然后鼠标指针改变,按下左键,就可以从第一个listview中指定的行,画线,随着mouse_move,线动态生成,直到鼠标左键mouse_up,完成...
我想通过点击一个按钮,然后鼠标指针改变,按下左键,就可以从第一个listview中指定的行,画线,随着mouse_move,线动态生成,直到鼠标左键mouse_up,完成两个listview中的选定的行的连线,并且,该线会记录连接的两行数据的信息;同时要能点击该线右键,弹出删除菜单,将该线删除。请大师们指导!!!谢谢!!!你
展开
4个回答
展开全部
可以给你一个思路,在两个listview中间放一个panel作为画线的地方,用mousedown,mouseMove和mouseUp,这个对你来说应该不难了
关键是获取这两行数据
在listview里面有一个AutoScrollOffset判断当前滚动条所在位置,然后再结合你连线的起始点的位置(因为一样数据占的行距是一样的,根据你listview所在位置和你连线起始点的Y值就可以确定),就可以确定你listview选的是哪个值。
关键是获取这两行数据
在listview里面有一个AutoScrollOffset判断当前滚动条所在位置,然后再结合你连线的起始点的位置(因为一样数据占的行距是一样的,根据你listview所在位置和你连线起始点的Y值就可以确定),就可以确定你listview选的是哪个值。
更多追问追答
追问
我现在就是在两个listview中间放了一个panel作为画线的地方,这里有些问题,比如:1、我不想一进去窗体就要执行mouse_move事件,这个是要可控的(比如点击“画线”按钮,才开始进行这些操作~);2、画线的时候,起点的坐标X要跟panel的左边X一致,终点坐标X要跟panel的右边X一致;3、开始画线的时候,如果起点(即按下鼠标左键那个瞬间)是在左边的listview中,鼠标继续往右Move,就涉及到了跨控件画线了,会不会有问题?
追答
1、不要在panel里直接添加mousemove事件,而是采用委托,你点击button的时候才添加,panel1.panel1_MouseMove
+=new System.Windows.Forms.MouseEventHandler(this.panel1_MouseMove);画完以后把他设置成null就可以了
2、画线起点终点要跟边界的X一致,这个你可以在mouseup和mousedown里面写,画起点的时候令x=0,y=你鼠标点击的点,终点令x=panel的宽度-1,y=你鼠标点击的点。
3、panel是在两个listview中间的,不会跨控件的吧
展开全部
我最近也正做这一块呢,可以说有点小收获吧。给你提供一些思路,仅供参考!
这一块我是用javascript写的,没涉及到GDI+什么的,太麻烦。还有兼容性不好!
通过画三条<div>线(div style=“width:2px;height:2px;backgroup-color:red”),来实现列与列的相连。当然你线画上了,还得允许拖动!
通过两次点击取到在html页面上的两个坐标,尝试一下用<div>来画线,这样兼容性更容易实现!
这一块我是用javascript写的,没涉及到GDI+什么的,太麻烦。还有兼容性不好!
通过画三条<div>线(div style=“width:2px;height:2px;backgroup-color:red”),来实现列与列的相连。当然你线画上了,还得允许拖动!
通过两次点击取到在html页面上的两个坐标,尝试一下用<div>来画线,这样兼容性更容易实现!
更多追问追答
追问
谢谢您热亲的回答~~~不过,不会javaScript···
追答
呵呵!其实用什么语言都无所谓的,你用.net最终都会解析成html语言!画线不难,难的是对拖动的处理以及后续的操作,比如删除、属性之类的右键单击事件。
祝你成功!结贴的时候别忘了加精啊,嘿嘿!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是画线的问题了,要用API函数!!
你可以百度下API函数,具体这种功能还真没做过
你可以百度下API函数,具体这种功能还真没做过
追问
哦。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用GDI+写呀
更多追问追答
追问
我知道,但是,我现在只会简单的画线,在mouse_Down\Move\Up 三个事件里面写,但是不能满足我说的要求,您再看下我想达到的效果吧
追答
做清屏不就OK了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询