c#,按下esc键,则退出程序,代码怎样写?

 我来答
murphybao
推荐于2017-10-03 · TA获得超过1210个赞
知道小有建树答主
回答量:1002
采纳率:66%
帮助的人:543万
展开全部

注意,不要只copy KeyPress过程进去你的代码,要关联上事件

private void Form1_Load(object sender, EventArgs e)
{
    this.KeyPreview = true;
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Escape)
{
this.Close();
}
}
更多追问追答
追问

KeyChar那里有问题   是不是要添加什么引用?

追答

不需要,你的过程错了吧,不是KeyPress事件,而是选的别的。

shycare
2014-12-10
知道答主
回答量:27
采纳率:0%
帮助的人:4.2万
展开全部
不知道你写的是什么程序,但是我告诉你esc键的键值是27,判断下KeyPressEventArgs事件按的是不是27,如果是则退出程序就行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苍茫一子E0
2019-05-23 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:26%
帮助的人:797万
展开全部
没有退出,循环继续执行是因为if判断中的代码没有被执行。
console.writeline("\n继续运算吗(按esc键退出)?");
consolekey
exitkey
=
new
consolekey();
exitkey
=
console.readkey().key
;
if
(exitkey
==
consolekey.escape)
{
tobecontinue
=
false;
environment.exit(0);
}
试试看能不能运行吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
甫幼冬6
2014-12-10 · TA获得超过205个赞
知道小有建树答主
回答量:169
采纳率:50%
帮助的人:120万
展开全部
//重写ProcessCmdKey的方法
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
int WM_KEYDOWN = 256;
int WM_SYSKEYDOWN = 260;
if (msg.Msg == WM_KEYDOWN | msg.Msg == WM_SYSKEYDOWN)
{
switch (keyData)
{
case Keys.Escape:
this.Close();//esc关闭窗体
break;
}

}
return false;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式