Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#中拖放时如何避免两个图像重叠?_C#_.net 3.5 - Fatal编程技术网

在C#中拖放时如何避免两个图像重叠?

在C#中拖放时如何避免两个图像重叠?,c#,.net-3.5,C#,.net 3.5,我希望在面板中拖放图像,并希望避免图像重叠。图像是从另一个面板拖动的,我希望从该图像构建布局。我能够将图像拖放到面板上,并希望在拖放时避免重叠 专用无效面板1_DragDrop(对象发送方,DragEventArgs e) { //this.Cursor=Cursors.SizeAll Control c = e.Data.GetData(e.Data.GetFormats()[0]) as Control; if (c != null) {

我希望在面板中拖放图像,并希望避免图像重叠。图像是从另一个面板拖动的,我希望从该图像构建布局。我能够将图像拖放到面板上,并希望在拖放时避免重叠

专用无效面板1_DragDrop(对象发送方,DragEventArgs e) { //this.Cursor=Cursors.SizeAll

        Control c = e.Data.GetData(e.Data.GetFormats()[0]) as Control;
        if (c != null)
        {
            mycontrol = c;


              c.Location = this.panel1.PointToClient((new Point(e.X, e.Y)));

                this.panel1.Controls.Add(c);

        }  

    }
e、 X和e.Y不得位于面板中其他控件的顶部

我该怎么做?请给我一个合适的解决方案


谢谢。

您的问题有两种解释:

1) 你想让你放下的控件调整它的Zorder,这样它就“在”你面板中其他控件的后面…就像你想让放下的图像成为背景一样

如果是这样的话,那么就做:

c、 SendToBack()

完成this.panel1.Controls.Add(c)之后

2) 实际上,您正在将多个图像放入面板中,并且希望它们的布局就像它们在一个列表中一样,一个接一个地垂直排列

如果需要这样做,则需要定位放置的图像,以便指定其顶部和左侧坐标,以便它们从面板中显示的“最底部”图像控件开始

根据在.Control集合中维护控件的方式,可以通过几种不同的方式计算坐标

如果显示在控件集合中的控件按照与其垂直Y偏移相等的顺序正确排序/维护,则只需查看.controls集合中的最后一个控件,找到其底部Y位置:

e、 g

如果(this.panel1.Controls.Count==0)
{
c、 X=0;
c、 Y=0;
}
否则
{
c、 X=0;
c、 Y=this.panel1.Controls[this.panel1.Controls.Count-1]。底部;
}


如果不按像素y顺序维护图像控件,则必须迭代.controls集合中的所有控件,并找到具有最大“底部”的控件,并将其作为新删除的图像控件的起点。

@C.Karunarathne-Stackoverflow用户希望人们至少做一点工作并展示出来。如果您不提供一些并解释什么不起作用,没有人会响应代码请求。@C.Karunarathne,即使您不知道如何开始编写代码,也可以请参阅更多信息。例如,从何处放置图像?从文件或Winform中的另一个图像控件?您的具体要求是什么?例如,如果拖动的图像大于目标面板,预期的行为是什么。