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

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

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();
}
}
方法三 隱藏按鈕法
- 這個同第一個方法的原理基本一致,同樣是利用已經(jīng)存在的button。但是區(qū)別是按鍵被隱藏了,這是一種另辟蹊徑的偏門方法,不常用。 需要注意的是,要將button控件的size變成0,0,也就是沒有尺寸,避免顯示出來,有人問,可以關(guān)掉visible來隱藏嗎?大家可以試一試哦!
最后
方法總比困難多,條條大路通羅馬。
到此這篇關(guān)于C#實現(xiàn)ESC退出窗口的三種方法的文章就介紹到這了,更多相關(guān)C# ESC退出窗口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
WinForm實現(xiàn)最小化到系統(tǒng)托盤方法實例詳解
這篇文章主要介紹了WinForm實現(xiàn)最小化到系統(tǒng)托盤方法,實例分析了C#中實現(xiàn)WinForm最小化到系統(tǒng)托盤所需的相關(guān)控件與使用技巧,需要的朋友可以參考下2015-05-05
WPF實現(xiàn)多運(yùn)算符表達(dá)式計算器
這篇文章主要為大家詳細(xì)介紹了WPF實現(xiàn)多運(yùn)算符表達(dá)式計算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-11-11
C#編程自學(xué)之?dāng)?shù)據(jù)類型和變量三
C#語言類型系統(tǒng)提出的一個核心概念裝箱(boxing)拆箱(unboxing)。裝箱和取消裝箱的概念是C#的類型系統(tǒng)的核心。它在“值類型”和“引用類型”之間的架起了一座橋梁,使得任何“值類型”的值都可以轉(zhuǎn)換為object類型的值,反過來轉(zhuǎn)換也可以。2015-10-10

