标题:事件问题!求高手们帮帮忙吧!!谁能给我一个满意的答复呀
只看楼主
adtf_liu
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-7-25
 问题点数:0 回复次数:5 
事件问题!求高手们帮帮忙吧!!谁能给我一个满意的答复呀
我声明了两个PictureBox对象,并通过对MouseDown,MouseMove事件的处理完成了对PictureBox的移动, 
但我现在想完成“当PictureBox1移动到PictureBox2边缘时,移动PictureBox2,使两个图片不重合,有点类似于打台球时,球的撞击动作”
Drag相关事件不知是我用的不对,还是什么原因,不能完成些功能!
我通过PictureBox的Move事件和判断各PictrueBox的坐标,倒是勉强完成了这个功能!
对PictureBox数量少的情况下,这样做还可以,如果PictureBox数量多了,这样做的话,就很麻烦了@
所以,请问高手们,我要怎么做才能通过“事件”完成这个功能
C#里有没有判断“当某控件移动到本控件上方或边缘”时触发的事件呀!!!!!!
请了,知道的高手们,请回一下帖吧@

[此贴子已经被作者于2005-7-26 22:00:28编辑过]


搜索更多相关主题的帖子: 答复 
2005-07-25 10:52
jackey163
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2005-7-21
得分:0 
也不是很清楚 ,帮你找拉下,你再查查吧
DragDrop(从 Control 继承)在完成拖放操作时发生。
DragEnter(从 Control 继承)在将对象拖入控件的边界时发生。
DragLeave(从 Control 继承)在将对象拖出控件的边界时发生。
DragOver(从 Control 继承)在将对象拖到控件的边界上发生。
MSDN上的

.net 方面可以交流下 MSN:jackeyhuang123@
2005-07-25 11:10
adtf_liu
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-7-25
得分:0 
Drag相关的事件我都试了,当我移动PictrueBox1到PictrueBox2上方时,根本就触发不了相关事件

纯属个人意见,仅供参考!
2005-07-25 11:16
jackey163
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2005-7-21
得分:0 
等斑主神游回来解决吧,我不行

.net 方面可以交流下 MSN:jackeyhuang123@
2005-07-25 11:24
houyunqing
Rank: 1
等 级:新手上路
帖 子:476
专家分:0
注 册:2005-4-1
得分:0 
SizeChanged是在Control的Size发生改变的时候触发的事件,想必你的PictureBox的Size是不会改变的吧?还有另外一个
LocationChanged是Control的位置发生变化的时候触发的事件
private bool CheckIN(Location la,Size sa,Location lb,Size sb)
{
Point[]ps=new Point[4];
ps[0]=new Point(la.X,la.Y);
ps[1]=new Point(la.X,la.Y+sa.Height);
ps[2]=new Point(la.X+sa.Width,la.Y);
ps[3]=new Point(la.X+sa.Width,la.Y+sa.Height);
foreach(Point pp in ps)
{
if(checkin(pp,lb,sb))
return true;
}
return false;
}
private bool checkin(Point p,Location lb,Size sb)
{
int x = p.X-lb.X;
int y = p.Y-lb.Y;
if(x<0)
return false;
if(x>sb.X)
return false;
if(y<0)
return false;
if(y>sb.Y)
return false;
return true;
}
这种方法虽然代码多一点,但是效率可能还不错,不知道你有没有更好的判断方法?
不知道上面的代码有没有错误...直接在这里写的...

寻求挑战,追求完美 Oh,my god!
2005-07-25 16:33
adtf_liu
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-7-25
得分:0 
LocationChanged事件和我现在用的Move事件差不多呀
请问楼上:C#中有没有判断“当某控件移动到本控件上方或边缘”时触发的““事件””呀!
我就是为了不想用太的代码判断来实现此功能,所以才寻求有没有什么事件来解决
或者说有没有什么“碰撞检测”之类的事件!!
记得DELPHI中有Dock之类的事件,就是检测“当某控件移动到本控件上方或边缘”的事件!

纯属个人意见,仅供参考!
2005-07-25 16:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-23572-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.761134 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved