c#如何在子窗体实现按下esc键关闭当前子窗体,最好给予提示,在线等

时间:2022-02-13 02:39:53
private void FrmXYDW_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyData == Keys.Escape)
            {
                this.Close();
            }

        }
思路好像要判断我当前的窗体是不是活动的.......我的窗体按下的时候根本不走KeyUp这个事件  
请高手帮忙解答 
在线等!!!!!!!!!

25 个解决方案

#1


子窗体里用一个button,button事件写
this.close;

子窗体的CancelButton属性指字上面的按钮,如
this.CancelButton=button1;

#2


我把这个this.CancelButton=button1写到那个方法里..直接赋值不行  给不到属性

#3


引用 2 楼 zhendeainixinxin 的回复:
我把这个this.CancelButton=button1写到那个方法里..直接赋值不行 给不到属性


呵呵,还是多看书吧,真拿你没办法

努力,奋斗

#4


新手阿,,帮帮忙阿..
我的窗体死活都不走keyup事件
如果能走keyup事件我就觉得可以了

#5


你是要关闭子窗体?

你的代码是不是把整个窗体关了?

Up没有执行么?

你单步跟踪一下,看看Up运行了么

#6


http://blog.csdn.net/chazikai24/archive/2010/08/31/5853338.aspx
参考这个自己修改

#7


是的 我要关闭当前窗体,,
我的Keyup事件根本没有执行.
键盘按下esc键没有任何反应.!

#8


引用 5 楼 qiuxin425 的回复:
你是要关闭子窗体?

你的代码是不是把整个窗体关了?

Up没有执行么?

你单步跟踪一下,看看Up运行了么

是的 我要关闭当前窗体,,
我的Keyup事件根本没有执行.
键盘按下esc键没有任何反应.!

#9


窗體上有CancalButton的,設置為一個button,在button事件裡寫關閉代碼就可以了吧!

#10


引用 9 楼 kelvin0926 的回复:
窗體上有CancalButton的,設置為一個button,在button事件裡寫關閉代碼就可以了吧!


顶你

我是一楼,我已经告诉了他,他还在问,现在的新人为什么不喜欢看书了呢

这就像问:1+1等于多少,人家告诉他2了,

他以后还会问:1+2等于多少

#11


     private void Form2_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape)
            {
                this.Close();
            }
        }


用keyDown事件

#12


关键我要问这个窗體上有CancalButton的,写到哪里,,我直接在属性那边写不进去...
!

#13


andy118 你要是能说就说明白点
跟事B似的

#14


引用 11 楼 mggstrong 的回复:
C# code
     private void Form2_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape)
            {
                this.Close();
            }
        }

……


keydown这个事件不行的

#15


引用 13 楼 zhendeainixinxin 的回复:
andy118 你要是能说就说明白点
跟事B似的


不要说脏话,会骂人显得你很行,是吧!

#16


引用 13 楼 zhendeainixinxin 的回复:
andy118 你要是能说就说明白点
跟事B似的


一个最简单的东西都不会,告诉你了,还能问出这个:

引用 13 楼 zhendeainixinxin 的回复:
关键我要问这个窗體上有CancalButton的,写到哪里,,我直接在属性那边写不进去...


说你不看喜欢看书,就骂人,这是最基础的

做程序员这么躁,改改你的性格吧

#17


我有骂你,,哪里有脏字..
郁闷  
我这边也没有书啊
要是能的话 我还在这里找人帮忙..!
窗体点这个属性选中赋不到值
我就问一下

#18


引用 17 楼 zhendeainixinxin 的回复:
我有骂你,,哪里有脏字..
郁闷  
我这边也没有书啊
要是能的话 我还在这里找人帮忙..!
窗体点这个属性选中赋不到值
我就问一下


如果你热爱电脑技术,想学一门技术,就去买本书吧
不要为了学习却不肯花钱

而且写程序,是要不断地能够静下心看书写代码的,
浮躁只会害了自己

我也没别的意思

祝你开心进步

只是想告诉你,求人不如求已,自己多看书,多写代码,你就能够更容易成长

#19


引用 17 楼 zhendeainixinxin 的回复:
我有骂你,,哪里有脏字..
郁闷  
我这边也没有书啊
要是能的话 我还在这里找人帮忙..!
窗体点这个属性选中赋不到值
我就问一下

 
你先建一个button1,在里面写关闭的语句。之后窗体属性里的cancelbutton就能设置了。

#20


不过会多一个button1,而且不可见的话貌似就无效了。

#21


我的按钮toolStripButton2写了个事件关闭的方法
然后我切换到窗体的
cancelButton这个属性显示是无?但是不能再里面输入,下拉框选择也没有..

#22


你的子窗体上的KeyPreview属性改成true了吗??这个属性不是true,窗体不接受任何按键事件,
private void Form2_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape)
            {
                this.Close();
            }

        }
你试试,一定行。

#23


引用 21 楼 zhendeainixinxin 的回复:
我的按钮toolStripButton2写了个事件关闭的方法
然后我切换到窗体的
cancelButton这个属性显示是无?但是不能再里面输入,下拉框选择也没有..

谢谢,,我刚刚已经研究出来了
正好看到你回答了

#24


正好看到你回答了

#25


22楼说的是对的。

#1


子窗体里用一个button,button事件写
this.close;

子窗体的CancelButton属性指字上面的按钮,如
this.CancelButton=button1;

#2


我把这个this.CancelButton=button1写到那个方法里..直接赋值不行  给不到属性

#3


引用 2 楼 zhendeainixinxin 的回复:
我把这个this.CancelButton=button1写到那个方法里..直接赋值不行 给不到属性


呵呵,还是多看书吧,真拿你没办法

努力,奋斗

#4


新手阿,,帮帮忙阿..
我的窗体死活都不走keyup事件
如果能走keyup事件我就觉得可以了

#5


你是要关闭子窗体?

你的代码是不是把整个窗体关了?

Up没有执行么?

你单步跟踪一下,看看Up运行了么

#6


http://blog.csdn.net/chazikai24/archive/2010/08/31/5853338.aspx
参考这个自己修改

#7


是的 我要关闭当前窗体,,
我的Keyup事件根本没有执行.
键盘按下esc键没有任何反应.!

#8


引用 5 楼 qiuxin425 的回复:
你是要关闭子窗体?

你的代码是不是把整个窗体关了?

Up没有执行么?

你单步跟踪一下,看看Up运行了么

是的 我要关闭当前窗体,,
我的Keyup事件根本没有执行.
键盘按下esc键没有任何反应.!

#9


窗體上有CancalButton的,設置為一個button,在button事件裡寫關閉代碼就可以了吧!

#10


引用 9 楼 kelvin0926 的回复:
窗體上有CancalButton的,設置為一個button,在button事件裡寫關閉代碼就可以了吧!


顶你

我是一楼,我已经告诉了他,他还在问,现在的新人为什么不喜欢看书了呢

这就像问:1+1等于多少,人家告诉他2了,

他以后还会问:1+2等于多少

#11


     private void Form2_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape)
            {
                this.Close();
            }
        }


用keyDown事件

#12


关键我要问这个窗體上有CancalButton的,写到哪里,,我直接在属性那边写不进去...
!

#13


andy118 你要是能说就说明白点
跟事B似的

#14


引用 11 楼 mggstrong 的回复:
C# code
     private void Form2_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape)
            {
                this.Close();
            }
        }

……


keydown这个事件不行的

#15


引用 13 楼 zhendeainixinxin 的回复:
andy118 你要是能说就说明白点
跟事B似的


不要说脏话,会骂人显得你很行,是吧!

#16


引用 13 楼 zhendeainixinxin 的回复:
andy118 你要是能说就说明白点
跟事B似的


一个最简单的东西都不会,告诉你了,还能问出这个:

引用 13 楼 zhendeainixinxin 的回复:
关键我要问这个窗體上有CancalButton的,写到哪里,,我直接在属性那边写不进去...


说你不看喜欢看书,就骂人,这是最基础的

做程序员这么躁,改改你的性格吧

#17


我有骂你,,哪里有脏字..
郁闷  
我这边也没有书啊
要是能的话 我还在这里找人帮忙..!
窗体点这个属性选中赋不到值
我就问一下

#18


引用 17 楼 zhendeainixinxin 的回复:
我有骂你,,哪里有脏字..
郁闷  
我这边也没有书啊
要是能的话 我还在这里找人帮忙..!
窗体点这个属性选中赋不到值
我就问一下


如果你热爱电脑技术,想学一门技术,就去买本书吧
不要为了学习却不肯花钱

而且写程序,是要不断地能够静下心看书写代码的,
浮躁只会害了自己

我也没别的意思

祝你开心进步

只是想告诉你,求人不如求已,自己多看书,多写代码,你就能够更容易成长

#19


引用 17 楼 zhendeainixinxin 的回复:
我有骂你,,哪里有脏字..
郁闷  
我这边也没有书啊
要是能的话 我还在这里找人帮忙..!
窗体点这个属性选中赋不到值
我就问一下

 
你先建一个button1,在里面写关闭的语句。之后窗体属性里的cancelbutton就能设置了。

#20


不过会多一个button1,而且不可见的话貌似就无效了。

#21


我的按钮toolStripButton2写了个事件关闭的方法
然后我切换到窗体的
cancelButton这个属性显示是无?但是不能再里面输入,下拉框选择也没有..

#22


你的子窗体上的KeyPreview属性改成true了吗??这个属性不是true,窗体不接受任何按键事件,
private void Form2_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape)
            {
                this.Close();
            }

        }
你试试,一定行。

#23


引用 21 楼 zhendeainixinxin 的回复:
我的按钮toolStripButton2写了个事件关闭的方法
然后我切换到窗体的
cancelButton这个属性显示是无?但是不能再里面输入,下拉框选择也没有..

谢谢,,我刚刚已经研究出来了
正好看到你回答了

#24


正好看到你回答了

#25


22楼说的是对的。