C# form 中实现节点的随意拖动

问题描述

小弟最近遇到一个头痛的问题;怎么实现以下功能:1.在界面上显示出树形图,2.树形图的节点显示图片而且可随意添加节点3.节点随意拖动;我的问题就出现在节点随意拖动上,我用treeview实现树形图,节点也可以在节点间拖动交换,但实现不了随意拖动,具体效果如MicrosoftOfficeVisio流程图一样;有人说treeview实现不了随意拖动,要画图,我晕了。。。。类似效果如下:请求各位大神帮助=>>>>

解决方案

解决方案二:
自己定义图形基类,每种图形可以子类实现,你要做的就是把每个图形当做一个对象,可以相应你的事件,并绘制锚点等
解决方案三:
自己定义先来一堆接口线性接口区域型接口可拖拽接口等再写类挨个定义挨个实现呗
解决方案四:
谢了。。。。。
解决方案五:
各位大神可以详细点不,,,小弟才疏学浅啊。。。。
解决方案六:
求解答啊。。。。
解决方案七:
引用1楼bdmh的回复:

自己定义图形基类,每种图形可以子类实现,你要做的就是把每个图形当做一个对象,可以相应你的事件,并绘制锚点等

说的没错,主要的技术就是GDI。

时间: 2024-09-10 12:24:49

C# form 中实现节点的随意拖动的相关文章

winfrom picturebox-winfrom做图片水印,水印图片可随意拖动

问题描述 winfrom做图片水印,水印图片可随意拖动 要做一个水印图片,而这个水印在图片上可以随意拖动,保存生成一张新图,我要怎么控制picturebox中的水印图片在拖动的时候不会拖到pannel外面 解决方案 在Move事件中判断下 left > 0 && top > 0 && top < form.height-pic.height && left < form.width - pic.width

PHP+MySQL+jQuery实现随意拖动层

之前我有文章:jQuery实现拖动布局并将排序结果保存到数据库,文中以项目为示例,讲解了实现拖动布局的方法.本文与之不同之处在于可以任意拖动页面位置,原理就是通过拖动将拖动后层的相对位置left,top和z-index三个参数更新到数据表中对应的记录,页面通过CSS解析每个层不同的位置.请看具体实现步骤.     准备MySQL数据表 首先需要准备一张表notes,用来记录层的内容,背景色和坐标等信息. CREATE TABLE IF NOT EXISTS `notes` (      `id`

Treelist 中的节点拖拽

问题描述 前提:拖拽后即入库当我第一次拖拽一个带子结点的treelistnode到另外一个treelist中,没有出现问题,可是第二次拖拽,目标treelist中的节点结构全变了,回到前一步,再回来,从数据库中读取的数据的结构是正确的,这是怎么回事??在线等候,急急如律令 解决方案 解决方案二:网上有参考源码,搜吧判断节点,存储拖前状态,有效的拖动则完成动作解决方案三:ding!!!!!!!!!!!!!

JavaScript中访问节点对象的方法有哪些如何使用_javascript技巧

JavaScript中访问节点对象的方法有哪些? 复制代码 代码如下: var obj = document.getElementById('fdafda'); var obj = document.f1; obj.method="post"; obj.action='Bb'; var obj = document.f1.userName; var obj = document.forms[0].userName; var obj = document.forms[0].element

JavaScript中访问节点对象的方法有哪些?

JavaScript中访问节点对象的方法有哪些? var obj = document.getElementById('fdafda'); var obj = document.f1; obj.method="post"; obj.action='Bb'; var obj = document.f1.userName; var obj = document.forms[0].userName; var obj = document.forms[0].elements[0]; var o

在TreeView控件中实现节点搜索遇到的问题

问题描述 在项目中使用TreeView通过DataBinding的方式展示数据,后来发现数据量稍微有点大的话,在呈现的时候就要耗很多时间,导致用户体验很差,后来通过UIV的方式解决了这个问题(设置VirtualizingStackPanel.IsVirtualizing="True"VirtualizingStackPanel.VirtualizationMode="Recycling")但这时带来一个问题,由于Tree上有搜索节点的功能,在使用了UIVirtual

小菜鸟弱弱的问一句怎么在Microsoft Visual Studio 2010的form中的属性写事件啊?

问题描述 小菜鸟弱弱的问一句怎么在MicrosoftVisualStudio2010的form中的属性写事件啊?[img=http://b151.photo.store.qq.com/psb?/bfc51046-87e3-466f-b460-4730d42a104e/AmFVoa36OQhaKLSNbCVTQKU1ZIuT.nWqyYV*BAtxSnk!/b/YV5XAlrlNwAAYgICDVqaPQAA][/img]我想在我拖动外面的窗体的时候,里面的ListView的大小跟着一起变大变小怎

PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解_jquery

想拖动页面上的层,完全可以用jQuery ui的Draggable方法来实现,那如何将拖动后层的位置保存下来呢?本文将给出答案.本文讲解了如何采用PHP+MySQL+jQuery,实现随意拖动层并即时保存拖动位置. 本文原理就是通过拖动将拖动后层的相对位置left,top和z-index三个参数更新到数据表中对应的记录,页面通过CSS解析每个层不同的位置.请看具体实现步骤.准备MySQL数据表 首先需要准备一张表notes,用来记录层的内容,背景色和坐标等信息. CREATE TABLE IF

PHP往XML中添加节点的方法

 这篇文章主要介绍了PHP往XML中添加节点的方法,涉及php操作XML文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了PHP往XML中添加节点的方法.分享给大家供大家参考.具体方法如下: 1. contacts.xml代码 代码如下: <contact id="43956"> <personal> <name> <first>J</first> <middle>J</middl