控件重叠与鼠标移动的问题
大家好,我有一个比较棘手的问题:
1 我在做一个触摸屏,有一个窗体Form1,还有一个panel1完全覆盖了整个窗体Form1。在这个panel1的最下面又有两个panel:panel2,panel3。它们的宽度跟Form1的宽度一致,高度很小,就是一个长条。
2 我想把panel2设计成为一个导航条,当用户把手指移动到Form1的下端时,导航条panel2会自动弹出,当用户的手指移开时,这个导航条panel2自动消失。
3 panel3与panel2大小和位置一致,他不由用户控制,它用来显示一些信息,它和导航条互不影响。但是他们完全重叠,当用户手指移动到Form1的下端时,导航条可以完全遮盖panel3。
4 问题是,当鼠标(手指)在Form1上移动(此时由于panel1完全覆盖了Form1,也可以说是在panel1上移动)时,移动到下端,导航条并不出现。
5 From1是panel1,pannl2,panel3的父类,已设置panel1,panel2,panle3没有继承关系。
6 程序如下:
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.X >= this.panel2.Location.X && e.X <= this.panel2.Location.X + this.panel2.Size.Width && e.Y >=this.panle2.Location.Y && e.Y <= this.panel2.Location.Y + this.panel2.Size.Height)
{
this.panel2.Visible = true;
panel2.BringToFront();
}
else
{
this.panel2.Visible = false;
}
}
发现这个鼠标事件根本就没用,当只有从窗体外进入的时候才有效。要是在窗体内部移动,也即是在panel1上移动,就算到了那个位置他也不触发事件。
7 我在想着3个panel都是Form1的子类,而且互不影响,那么就算是在panel1上移动,也应该算作在Form1上移动,可是看来我错了
大家遇到过这种情况吗?有没有相关的专门介绍这些东西的资料。
8 坐等讨论