首页 新闻 搜索 专区 学院

再讨论一个简单问题,在Picture上面放一个控件,鼠标进入picture显示,移除picture隐藏该控件

0
悬赏园豆:10 [已解决问题] 解决于 2011-08-12 07:32

本来以为很简单,这么些就可以了:

 private void pictureBox1_MouseEnter(object sender, EventArgs e)
        {
            cbxConnectionFiles.Visible = true;
        }

        private void pictureBox1_MouseLeave(object sender, EventArgs e)
        {
            cbxConnectionFiles.Visible = false;
        }

但是事实发现,当一旦里面的控件Visible=true,如果鼠标在控件上面的时候,那么此时对于picturebox来说,又是Leave了,就把控件设置为不可见,而测试因为控件不见了,导致picturebox又发生Enter事件,如此死循环了,所有现象就是控件能显示和隐藏,但控件“失去响应”,不能进行任何操作。

大家怎么操作?

问题补充:

算了,简单点,改变一点需求。改为鼠标移入到控件区域时隐藏和显示。


        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            cbxConnectionFiles.Visible = (new Rectangle(
              cbxConnectionFiles.Location,cbxConnectionFiles.Size).Contains(e.Location));
        }

rdlc2的主页 rdlc2 | 初学一级 | 园豆:140
提问于:2011-08-11 15:28
< >
分享
最佳答案
0

你这个控件是combox?

收获园豆:10
杯具程序员 | 小虾三级 |园豆:1718 | 2011-08-11 15:54
是的。而且是比picturebox小。
rdlc2 | 园豆:140 (初学一级) | 2011-08-11 15:59
意思是 显示是 在里面选值嘛?
杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-11 16:04
跟这个控件是什么没有关系。控件默认是隐藏的,只有当鼠标进入区域时显示,离开区域时隐藏,就这么简单的功能。
rdlc2 | 园豆:140 (初学一级) | 2011-08-11 16:11
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
cbxConnectionFiles.Visible = (new Rectangle(
cbxConnectionFiles.Location,cbxConnectionFiles.Size).Contains(e.Location));
}
rdlc2 | 园豆:140 (初学一级) | 2011-08-11 16:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册