C#實(shí)現(xiàn)ESC退出窗口的三種方法
引言
我們通常用通過(guò)點(diǎn)擊取消按鍵或者右上角的“X”盒子退出的方法來(lái)實(shí)現(xiàn)關(guān)閉當(dāng)前Form窗體。但要使用按鍵ESC退出關(guān)閉窗口就顯得更加高級(jí)了,實(shí)現(xiàn)起來(lái)并不困難,但用戶體驗(yàn)會(huì)提升一個(gè)檔次,這里我講一講我小結(jié)的幾個(gè)方法,我用的VS2019。
方法一 同步按鈕法
- 我所謂的同步按鈕也就是我們本來(lái)就有一個(gè)退出或者取消的按鍵,我只要有這個(gè)按鍵的退出事件,那么我們就直接可以利用這個(gè)按鍵的事件就可以了,這個(gè)方法在VS中的屬性中就已經(jīng)設(shè)計(jì)好了,所以這個(gè)方法最為簡(jiǎn)單,完全沒(méi)有難度可言。
1、首先要有一個(gè)可以單擊退出的按鍵,在你建立的窗體中添加一個(gè)按鍵即可,添加最簡(jiǎn)單的退出代碼。

public partial class Form_test : Form
{
public Form_test()
{
InitializeComponent();
}
private void button_exit_Click(object sender, EventArgs e)
{
this.Close();
}
}
2、其次只有設(shè)置窗體屬性了,有了之前的事件(button_exit_Click),我們就可以將取消按鍵的定義為我們的退出事件。如下圖,我們將CancelButton選擇成我們的button_exit按鍵控件,完成。

方法二 監(jiān)聽(tīng)按鍵法
顧名思義,實(shí)時(shí)監(jiān)聽(tīng)按鍵按下,新建一個(gè)KeyPress事件或者KeyDown事件,單檢測(cè)到ESC按鍵按下時(shí),就執(zhí)行關(guān)閉的動(dòng)作,大家很快就聯(lián)想到了,這里使用其它的自定義按鍵都是可以的。這個(gè)方法的優(yōu)點(diǎn)就是不需要有控件button的存在,那么,就需要使用代碼來(lái)描述監(jiān)聽(tīng)的按下動(dòng)作。
1、這里的第一步是將屬性KeyPreview設(shè)置為true,這一步最為關(guān)鍵容易遺漏。當(dāng)然使用代碼直接設(shè)置也完全沒(méi)有問(wèn)題。

2、將鍵盤按鍵觸發(fā)事件代碼加入,下面的兩種事件方法都可以(KeyPress或KeyDown)。
private void Form_test_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Escape)//按下ESC //27
{
this.Close();
}
}
private void Form_ConfigPaParam_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
this.Close();
}
}
方法三 隱藏按鈕法
- 這個(gè)同第一個(gè)方法的原理基本一致,同樣是利用已經(jīng)存在的button。但是區(qū)別是按鍵被隱藏了,這是一種另辟蹊徑的偏門方法,不常用。 需要注意的是,要將button控件的size變成0,0,也就是沒(méi)有尺寸,避免顯示出來(lái),有人問(wèn),可以關(guān)掉visible來(lái)隱藏嗎?大家可以試一試哦!
最后
方法總比困難多,條條大路通羅馬。
到此這篇關(guān)于C#實(shí)現(xiàn)ESC退出窗口的三種方法的文章就介紹到這了,更多相關(guān)C# ESC退出窗口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
WinForm實(shí)現(xiàn)最小化到系統(tǒng)托盤方法實(shí)例詳解
這篇文章主要介紹了WinForm實(shí)現(xiàn)最小化到系統(tǒng)托盤方法,實(shí)例分析了C#中實(shí)現(xiàn)WinForm最小化到系統(tǒng)托盤所需的相關(guān)控件與使用技巧,需要的朋友可以參考下2015-05-05
C#實(shí)現(xiàn)Word文檔特殊符號(hào)的自動(dòng)化插入
在日常的文檔處理中,我們經(jīng)常需要在Word文檔中插入各種特殊符號(hào),手動(dòng)插入這些符號(hào)不僅效率低下,而且在需要批量處理或自動(dòng)化生成文檔時(shí),幾乎是不可行的,本文將深入探討如何在C#中實(shí)現(xiàn)Word文檔特殊符號(hào)的自動(dòng)化插入,需要的朋友可以參考下2026-02-02
WPF實(shí)現(xiàn)多運(yùn)算符表達(dá)式計(jì)算器
這篇文章主要為大家詳細(xì)介紹了WPF實(shí)現(xiàn)多運(yùn)算符表達(dá)式計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
C#編程自學(xué)之?dāng)?shù)據(jù)類型和變量三
C#語(yǔ)言類型系統(tǒng)提出的一個(gè)核心概念裝箱(boxing)拆箱(unboxing)。裝箱和取消裝箱的概念是C#的類型系統(tǒng)的核心。它在“值類型”和“引用類型”之間的架起了一座橋梁,使得任何“值類型”的值都可以轉(zhuǎn)換為object類型的值,反過(guò)來(lái)轉(zhuǎn)換也可以。2015-10-10

