国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

WinForm中快捷鍵與組合按鍵的設(shè)置方法

2020-01-24 03:35:12
字體:
供稿:網(wǎng)友
第一種方法。。代碼復(fù)雜,操作簡單的快捷鍵

新建一個空白窗體


每個窗體都有這樣3個事件:KeyDown、KeyPress、KeyUp,KeyDown和KeyPress都是按鍵按下事件,但KeyDown用的是KeyCode跟鍵盤各個按鍵相對應(yīng),它對應(yīng)Keys枚舉,用起來比較方便;而KeyPress用的是KeyChar,這個就要找ASC II編碼了,不方便。KeyUp是按鍵彈起事件,不常用,因此我們使用KeyDown事件來設(shè)置窗體的快捷鍵,雙擊該事件后的空白生成代碼,首先我們設(shè)置單個按鍵,讓它按下F11最大化,再次按下還原,在事件中加入如下代碼:

復(fù)制代碼 代碼如下:

if (e.KeyCode == Keys.F11)
{
if (WindowState == FormWindowState.Maximized)
WindowState = FormWindowState.Normal;
else
WindowState = FormWindowState.Maximized;
}


若窗體的WindowState為Maximized則還原,否則最大化,運(yùn)行下試試,很好用 :-)

下面在窗體中加入一個名為txtInput的TextBox,兩個名為btnConfirm、btnExit的Button:



再次運(yùn)行窗體,按下F11,不起作用了?這是怎么回事?

因?yàn)檫@時窗體運(yùn)行后,焦點(diǎn)已不在窗體上,而在控件上了,我們要將KeyPreview設(shè)置為True,向窗體注冊控件上產(chǎn)生的鍵盤事件,再次運(yùn)行,問題解決了。

那么組合按鍵又怎么設(shè)置呢?例如要按下Alt和數(shù)字0,需要這樣:

復(fù)制代碼 代碼如下:

if (e.Modifiers == Keys.Alt && e.KeyCode == Keys.D0)
{
    MessageBox.Show("按下了Alt + 0");
}

使用Modifiers可設(shè)置組合鍵,鍵盤數(shù)字區(qū)按鍵的Keys枚舉以D打頭,而小鍵盤上的數(shù)字以NumPad打頭。按下Ctrl與Shift組合鍵的方法與其類似,下面我們看看按下Ctrl + Alt + 數(shù)字0該怎樣設(shè)置:

復(fù)制代碼 代碼如下:

if ((int)e.Modifiers == ((int)Keys.Control + (int)Keys.Alt) && e.KeyCode == Keys.D0)
{
    MessageBox.Show("按下了Control + Alt + 0");
}

將Ctrl和Alt的枚舉轉(zhuǎn)換為int型相加后與Modifiers對比,這樣即可判斷是否按下了該組合鍵。

那么 怎么觸發(fā)按鈕事件呢?

如按F1觸發(fā)confirm按鈕事件

復(fù)制代碼 代碼如下:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
               if (e.KeyCode == Keys.F1)
             {

                         / /如果還有keypress事件,不讓此快捷鍵觸發(fā)其事件可加一句代碼

                      e.Handled = true;   //將Handled設(shè)置為true,指示已經(jīng)處理過KeyPress事件
                      confirm1.PerformClick();////執(zhí)行單擊confirm1的動作
             }
}



另外的,與窗體的AcceptButton屬性相關(guān)聯(lián)的按鈕,將與鍵盤上的Enter鍵對應(yīng);與窗體的CancelButton屬性相關(guān)聯(lián)的按鈕,將與鍵盤上的Ecs鍵對應(yīng)。

另外一種簡單快捷鍵的方法

在設(shè)置Button的Text屬性時,在一個英文字母的前面加上&(and符),例如將btnConfirm的Text屬性設(shè)置為:&Confirm,當(dāng)運(yùn)行窗體,按下Alt + C時,就相當(dāng)于按下該鍵。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁国市| 六枝特区| 莱阳市| 利川市| 桃园市| 崇信县| 平度市| 沁阳市| 五河县| 社旗县| 育儿| 青河县| 府谷县| 中超| 香河县| 广元市| 丽江市| 乌兰察布市| 玉屏| 新乡市| 凤庆县| 昌吉市| 抚州市| 柳河县| 紫阳县| 三明市| 祥云县| 保亭| 大同市| 宁德市| 岳池县| 文山县| 黑水县| 扎鲁特旗| 景谷| 勃利县| 肥城市| 工布江达县| 渑池县| 平利县| 开阳县|