问题描述
我设计的操作界面如下(如果有更好的操作界面,敬请相告):--------------------------------------------------|winform|||-----------------------------------------|||||-------|pictureboxgroupbox|||||-------|||||-----------------------------------------||||||||||||||--------------------------------------------------|我要实现的功能:1拖动groupbox里里面的picturebox往winform里一放,就能出现和picturebox一样的图片2在winform里面生成的图片可以拖拽,还可以改变大小3最好双击图片还能给图片一些参数这就有点想VS.NET2005里面,将工具箱里的控件往winform里面拖动加入我的目的就是将groupbox里的诸多图片组成一个电网结构,给每个对应的图片一定参数,最后在进行计算。不知道我说清楚没有。请高手解答,越详细越好,有代码就更加感谢了。无以回报,全部分以酬谢。
解决方案
解决方案二:
没怎么看懂要些什么。如果仅仅是拖拉的话,实现dragdrop事件就行了吧。
解决方案三:
要求说的不是太明白还有楼主你的图变形了吧最好发个图片上来
解决方案四:
可行是没问题实现就复杂了
解决方案五:
理解了点有点想vs2005的可视化工具栏groupbox是一个浮动或者停靠的工具条里面是很多的picturebox然后可以将这些picturebox代表的图形对象添加到winform上然后这些图形对象可以通过拖动改变大小位置而且可以编辑属性不同窗口间对象拖动的处理不是太熟悉图形对象框位置的改变和大小的改变应该好实现双击改变属性也好处理弹出个属性窗口就好了不过做起来好像还是挺麻烦的。。。
解决方案六:
我要设计的界面就是一个winform里面放了一个groupbox控件。groupbox控件里面将会有很多的图片,如发电机,变压器,输电线等等groupbox起到一个工具箱的作用实现功能就是:当我拖拽发电机图片时候,下面就会对应出现发电机的图片,其它类似之后我在拖拽这些图片,形成一个电网。这里没法插入图片啊
解决方案七:
对,biglazy说的没错,我就是想这么设计的,有用过电力行业仿真软件的应该很清楚这种界面。里面很常见的都是这样的。
解决方案八:
关于拖拽部分,请参考remex著于2007-8-410:14:33本文实现的功能是在ListView或DataGrid中,拖动行,同时还可以移动行到别的控件中...
解决方案九:
我还有几个细节问题想问问:1拖拽picturebox,生成一个图片,这个图片是不是应该放在一个新的picturebox里面?2拖拽新生成的picturebox是直接放在winform里面好,还是放到panel里面好?3放到winform里面的话,怎么将picturebox放到winform里面,代码是什么样子的?或者是不是picturebox不能直接放到winform都是很幼稚的问题,请高手不要见笑啊,谢谢解答
解决方案十:
图片要放在pictruebox里面的吧这样绘制操作简单点只需要添加一个picturebox就可以了我没找到pictruebox有调整边框大小这个属性的如果没有的话这个pictruebox应该是放在一个容器控件中有可以调整大小位置的功能然后pictruebox的大小也可以随着变化不知道vs里有没有这种现成的总之还是不熟悉~第三个问题就是new一个picturebox设置相关属性如图片来源位置然后显示到界面吧可以在vs2005里拖动添加一个然后参考自动生成的相关代码看看
解决方案十一:
总结起来就是图片应该放在picturebox里面突然想起一个问题,这些图片的个数都是不确定的,如何写他们的拖拽事件了?我觉得这里面得有两个部分一个是drag事件,一个是mouse事件
解决方案十二:
picturebox好像不行,没有allowdrop属性,所以我将图片放到panel2中,并且注册了三个事件,panel2_MouseDown、panel2_DragDrop、panel2_DragEnterprivatevoidpanel2_MouseDown(objectsender,MouseEventArgse){System.ComponentModel.ComponentResourceManagerresources=newSystem.ComponentModel.ComponentResourceManager(typeof(GridGIC));this.panel2.DoDragDrop((System.Drawing.Image)(resources.GetObject("panel2.BackgroundImage")),DragDropEffects.Move);}privatevoidpanel2_DragDrop(objectsender,DragEventArgse){this.panel1.BackgroundImag=e.Data.GetData("Bitmap");//图片,这里面怎么写啊,我是猜的}privatevoidpanel2_DragEnter(objectsender,DragEventArgse){if(e.Data.GetDataPresent("Bitmap"))//同上{e.Effect=DragDropEffects.Move;}}请教1我的红的地方的那个参数是什么样写的,数据源是一个图片阿2我这种方法怎么样啊