| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3865 人关注过本帖
标题:c# winfrom panel 的mouseleave怎么用啊
只看楼主 加入收藏
zhwbo123789
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2009-3-23
结帖率:33.33%
收藏
 问题点数:0 回复次数:13 
c# winfrom panel 的mouseleave怎么用啊
當鼠標移出Panel控件時將會触發MouseLeave事件,但是,如果在Panel中包含有其他控件,如GroupBox控件,當我將控件移到GroupBox控件時,我不需望触發此事件,該怎么弄?
  里面用是  panel1.Visible = false;

[ 本帖最后由 zhwbo123789 于 2009-9-24 16:28 编辑 ]
搜索更多相关主题的帖子: panel winfrom mouseleave 
2009-09-24 14:25
zhwbo123789
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2009-3-23
收藏
得分:0 
怎么的 是我说的不清楚 还是没有会的啊 在线等
2009-09-24 14:32
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
收藏
得分:0 
MouseLeave,MouseEnter只针对控件的可见部分,这个没法改
你要想不触发事件,你可以这么做

         private void panel1_MouseLeave(object sender, EventArgs e)
        {
            this.panel1.BackColor = Color.Beige;
        }
 
        private void panel1_MouseEnter(object sender, EventArgs e)
        {
            this.panel1.BackColor = Color.Blue;
        }
 
        private void button1_MouseEnter(object sender, EventArgs e)
        {
            this.panel1.BackColor = Color.Blue;
        }

就是把button的MouseEnter也写上

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-09-24 14:48
zhwbo123789
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2009-3-23
收藏
得分:0 
楼上的 你那个事行了  可是我本意是想让他看不见得啊。。
private void panel1_MouseLeave(object sender, EventArgs e)
        {
            //this.panel1.BackColor = Color.Beige;
            //button4.Visible = true;
           panel1.Visible = false;
        }
 
        private void panel1_MouseEnter(object sender, EventArgs e)
        {
           //this.panel1.BackColor = Color.Blue;  
            panel1.Visible = true;
        }
 
        private void button4_MouseEnter(object sender, EventArgs e)
        {
            //this.panel1.BackColor = Color.Blue;  
            panel1.Visible = true;
        }
这样写不行 。。。继续等待
2009-09-24 16:10
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:0 
你将panel1的背景颜色设置成Transparent试试。
2009-09-24 16:22
zhwbo123789
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2009-3-23
收藏
得分:0 
以下是引用zhoufeng1988在2009-9-24 16:22:19的发言:

你将panel1的背景颜色设置成Transparent试试。
这个和我的问题就没一点关系啊
2009-09-24 16:26
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
收藏
得分:0 
鼠标进入控件时候控件可见吗,说清楚点啊

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-09-24 16:30
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:0 
是吗?哈哈!
你将Panel1得Visible属性设为False,你说还可能响应MouseEnter事件吗?
将背景颜色设为Transparent那不就看不到Panel1了?

如果你非要用Visible,你就应该处理一下Form的MouseMove事件:
在处理方法里面加入:
判断当前鼠标的位置是不是在Panel里面,如果是在的话,将Panel显示出来。

MouseLeave事件:
当前鼠标位置不在Panel里面,隐藏Panel.

通过处理Panel的事件...继续等把.
2009-09-24 16:32
zhwbo123789
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2009-3-23
收藏
得分:0 
我的意思是只有鼠标离开了panel(panel里还有个Button)这个大的控件 才触发mouseleave,{panel1.Visible = false;}
 并不让鼠标移动到Button 上时就触发mouseleave 。。
谢谢
 8楼的能不能来点代码 。新手 刚学c# 就遇到这问题。。

[ 本帖最后由 zhwbo123789 于 2009-9-24 16:47 编辑 ]
2009-09-24 16:43
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
收藏
得分:0 
给你上代码吧
WindowsApplication2.rar (107.5 KB)

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-09-24 17:07
快速回复:c# winfrom panel 的mouseleave怎么用啊
数据加载中...
 
   



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

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