标题:求助 关于c#中屏蔽Alt+F4键强制关闭窗口的问题
只看楼主
zhwbo123789
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2009-3-23
得分:0 
private void @lock_Keydown(object sender, KeyEventArgs e)  
        {  
              
 
 
            //怕断用户的按键是否为Alt+F4  
            if (e.Alt == true && e.KeyCode == Keys.F4)  
            {  
                KeyPreview = true;  
                e.Handled = true;  
                MessageBox.Show("请输入解锁密码!");  
 
            }  
 
        }  
首先不是在这个事件里写KeyPreview = true;  的
 
你在看 我上面的代码 我改了
2009-09-26 11:36
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
得分:0 
按快捷键时候选中那个窗口了吗

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-09-26 11:37
zhwbo123789
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2009-3-23
得分:0 
...你不选中那个窗口 就不可能关闭那个窗口
2009-09-26 11:40
游牧游人
Rank: 2
等 级:论坛游民
帖 子:40
专家分:18
注 册:2009-9-24
得分:0 
大哥,帮我看了没有啊?
2009-09-26 16:46
游牧游人
Rank: 2
等 级:论坛游民
帖 子:40
专家分:18
注 册:2009-9-24
得分:0 
我把这些代码看到自己都快不认识了。。。
2009-09-26 16:47
zhwbo123789
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2009-3-23
得分:0 
你到底有没看我的帖子啊
这样写
 private void Login_KeyDown(object sender, KeyEventArgs e)
        {
            //if(e.KeyCode   == Keys.Enter)
            //{
            //    button1.PerformClick();
            //}
            if (e.KeyCode == Keys.F4 && e.Alt )
            {
               e.Handled = true;
                MessageBox.Show("请输入解锁密码!");  
 
            }
        }
 
        private void Login_Load(object sender, EventArgs e)
        {
            //label4.Text = link.Str(6).ToString() ;
            this.KeyPreview = true;
        }
this.KeyPreview = true在Login_Load事件下,而不是在你写的Login_KeyDown时间下
2009-09-26 16:57
redcar
Rank: 2
等 级:论坛游民
帖 子:210
专家分:60
注 册:2006-9-13
得分:0 
用窗体按键事件在这种应用上是下下策,拦截键盘鼠标事件,使用钩子最佳,100%拦截
2009-09-26 17:04
游牧游人
Rank: 2
等 级:论坛游民
帖 子:40
专家分:18
注 册:2009-9-24
得分:0 
不行啊,我直接在窗体的KeyPreview里都勾上true;了
Load里打上了,也不行,哎,没办法,谢谢各位了啊!
2009-09-26 19:09
nkorange
Rank: 2
等 级:论坛游民
帖 子:37
专家分:22
注 册:2008-10-23
得分:0 
你的代码没有问题,是不是你按下ALT+F4时,焦点是那个按钮,而不是窗体?打开窗体时焦点默认是在按钮上的。
2009-09-27 23:15
snowprince
Rank: 2
来 自:武汉
等 级:论坛游民
帖 子:108
专家分:48
注 册:2009-5-1
得分:0 
  protected override CreateParams CreateParams
        {
            get
            {
                const int CS_NOCLOSE = 0x200;
                CreateParams cp = base.CreateParams;
                cp.ClassStyle = cp.ClassStyle | CS_NOCLOSE;
                return cp;
            }
 
        }

试下这个
2009-09-29 14:08



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




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

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