标题:求助 关于c#中屏蔽Alt+F4键强制关闭窗口的问题
只看楼主
游牧游人
Rank: 2
等 级:论坛游民
帖 子:40
专家分:18
注 册:2009-9-24
结帖率:83.33%
已结贴  问题点数:20 回复次数:21 
求助 关于c#中屏蔽Alt+F4键强制关闭窗口的问题
我的代码是这样的,
可是用不了,我弄了好久都不知道什么回事:

namespace 我的项目
{
    public partial class @lock : Form
    {
        public @lock()
        {
            InitializeComponent();
        }



        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "1234")
            {
                this.Close();
            }
        }

        private void @lock_Load(object sender, EventArgs e)
        {

        }

        private void @lock_Keydown(object sender, KeyEventArgs e)
        {

            //怕断用户的按键是否为Alt+F4
            if (e.KeyCode == Keys.F4 && e.Modifiers == Keys.Alt)
            {
                KeyPreview = true;
                e.Handled = true;
                MessageBox.Show("请输入解锁密码!");
            }
        }
        

    }
}


究竟是哪里出问题呢?
我在网上找了好多,都说KeyPreview = true;就可以了,但是我还是弄不到!
搜索更多相关主题的帖子: Alt 窗口 
2009-09-26 09:52
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
得分:5 
没错啊,我试了一下
哪有问题啊

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-09-26 10:25
游牧游人
Rank: 2
等 级:论坛游民
帖 子:40
专家分:18
注 册:2009-9-24
得分:0 
没报错啊,我这里也没报错,但是对话框可以用ALT+F4结束啊,就是说我的: if (e.KeyCode == Keys.F4 && e.Modifiers == Keys.Alt)
            {
                KeyPreview = true;
                e.Handled = true;
                MessageBox.Show("请输入解锁密码!");
            }
根本没起作用。。。
2009-09-26 11:04
zhwbo123789
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2009-3-23
得分:15 
if (e.Alt && e.KeyCode == Keys.F4)
            {
                e.Handled = true;
                MessageBox.Show("请输入解锁密码!");  
 
            }
用这个


[ 本帖最后由 zhwbo123789 于 2009-9-26 11:25 编辑 ]
2009-09-26 11:13
游牧游人
Rank: 2
等 级:论坛游民
帖 子:40
专家分:18
注 册:2009-9-24
得分:0 
好奇怪啊,为什么会这样,我用了楼上的代码,可是也不行啊
按ALT+F4,还是轻松把窗口关掉了。
2009-09-26 11:25
zhwbo123789
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2009-3-23
得分:0 
首先你要把窗体的KeyPreveiw 属性设置为 true
private void Login_Load(object sender, EventArgs e)
        {
            //label4.Text = link.Str(6).ToString() ;
            this.KeyPreview = true;
        }
   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("请输入解锁密码!");

            }
        }


[ 本帖最后由 zhwbo123789 于 2009-9-26 11:31 编辑 ]
2009-09-26 11:28
游牧游人
Rank: 2
等 级:论坛游民
帖 子:40
专家分:18
注 册:2009-9-24
得分:0 
窗体的KeyPreveiw的属性我一直都是true的啊。。。
无论是一开始贴出来的,还是按你那个改了之后的,窗体的KeyPreveiw都是true
2009-09-26 11:31
zhwbo123789
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2009-3-23
得分:0 
你的代码我看?
2009-09-26 11:33
游牧游人
Rank: 2
等 级:论坛游民
帖 子:40
专家分:18
注 册:2009-9-24
得分:0 
namespace 我的项目
{
    public partial class @lock : Form
    {
        public @lock()
        {
            InitializeComponent();
        }
 
 
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
           
 
            if (textBox1.Text == "1234")
            {
                this.Close();
            }
        }
 
 
        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("请输入解锁密码!");
 
            }
 
        }
 
        private void @lock_Load(object sender, EventArgs e)
        {
 
        }
         
 
    }
}
2009-09-26 11:34
游牧游人
Rank: 2
等 级:论坛游民
帖 子:40
专家分:18
注 册:2009-9-24
得分:0 
我。。我觉得我的代码没问题啊,就是怕漏了什么细节
2009-09-26 11:35



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




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

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