男女做爽爽爽网站-男女做羞羞高清-男女做爰高清无遮挡免费视频-男女做爰猛烈-男女做爰猛烈吃奶啪啪喷水网站-内射白浆一区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

WinForm 中添加隱藏按鍵,實現(xiàn)特殊界面顯示與系統(tǒng)初始化

admin
2025年4月18日 19:57 本文熱度 174

前言

以前,我看到一個朋友在對一個系統(tǒng)做初始化的時候,通過一組魔幻般的按鍵,調(diào)出來一個隱藏的系統(tǒng)設(shè)置界面,這個界面在常規(guī)的菜單或者工具欄是看不到的,因為它是一個后臺設(shè)置的關(guān)鍵界面,不公開,同時避免常規(guī)用戶的誤操作,它是作為一個超級管理員的入口功能,這個是很不錯的思路。其實Winform做這樣的處理也是很容易的實現(xiàn)的,本篇隨筆來介紹Winform中增加隱藏的按鍵處理的功能。

1、準(zhǔn)備好相關(guān)的界面功能

例如,我對于動態(tài)表和屬性配置的界面,不希望一般用戶看到,用戶只是可以對業(yè)務(wù)表的數(shù)據(jù)進(jìn)行維護(hù)處理即可。那么我們可以把系統(tǒng)動態(tài)表和屬性配置的界面開發(fā)好,但是不直接放在菜單或者工具欄中。也就是我們完成功能的開發(fā),但是不提供常規(guī)的調(diào)用入口即可。

例如對于下面的定義界面,我們開發(fā)好,測試正常后,移除通用的菜單或者工具欄操作入口。

而只是給一個常規(guī)的數(shù)據(jù)錄入管理界面,如下所示。

這樣可以防止普通用戶的誤操作,同時也可以把這些特殊的功能給一些特殊的用戶使用即可。

2、 在Winform程序中增加隱藏的按鍵處理

完成常規(guī)功能的開發(fā)后,我們需要增加隱藏的按鍵處理。

我們知道,常規(guī)的Winform界面,如果需要接受按鍵的偵聽,需要設(shè)置窗體屬性 KeyPreview 為True。

然后跟蹤窗體的按鍵事件,包括按下去,和彈上來的兩個事件進(jìn)行處理,就可以跟蹤到用戶按鍵的組合,從而根據(jù)特殊的組合進(jìn)行過濾處理即可。

//設(shè)置可以跟蹤按鍵
form.KeyPreview = true;

//按鍵事件進(jìn)行跟蹤
form.KeyDown += (s, e) => {};
form.KeyUp += (s, e) => {};

有了這個思路,我們在一個輔助類中封裝一個方法,用來跟蹤兩組按鍵的處理,如下所示。

/// <summary>
/// 用于記錄第一個 Ctrl+Key(指定按鍵) 是否被按下
/// </summary>
privatebool IsFirstKeyPressed { getset; } = false;      

/// <summary>
/// 針對特殊的按鍵跟蹤處理, Ctrl+K 被按下,Ctrl+0按下,觸發(fā)某個特殊事件
/// </summary>
public void InitSpecialKeyPress(Form form, Action action, Keys firstKey = Keys.K, Keys secondKey = Keys.D0)
{
    form.KeyPreview = true;//設(shè)置可以跟蹤按鍵
    form.KeyDown += (s, e) =>
    {
        if (e.Control && e.KeyCode == firstKey)
        {
            e.SuppressKeyPress = true// 禁止默認(rèn)處理
            IsFirstKeyPressed = true// 記錄 Ctrl+K 被按下
        }
        elseif (IsFirstKeyPressed && e.Control && e.KeyCode == secondKey)
        {
            e.SuppressKeyPress = true// 禁止默認(rèn)處理
            action(); // 如果Ctrl + K 然后 Ctrl + 0 被按下!執(zhí)行操作

            IsFirstKeyPressed = false// 重置 Ctrl+K 狀態(tài)
        }
    };
    form.KeyUp += (s, e) =>
    {
        // 如果松開了 Ctrl 或 K 鍵,則重置 Ctrl+A 狀態(tài)
        if (e.KeyCode == secondKey || e.KeyCode == Keys.ControlKey)
        {
            IsFirstKeyPressed = false// 重置 Ctrl+K 狀態(tài)
        }
    };
}

我們注意到Action action,這個傳入一個匿名函數(shù)進(jìn)行處理符合條件按鍵的操作,因此可以變得通用很多。

因此我們在主窗體MainForm的構(gòu)造函數(shù)中進(jìn)行按鍵事件的注冊處理即可。

/// <summary>
/// 程序主界面
/// </summary>
publicpartialclassMainForm : RibbonForm
{
    public MainForm()
    {
        InitializeComponent();

        ....

        //針對特殊的按鍵跟蹤處理
        Portal.gc.InitSpecialKeyPress(this, () =>
        {
            //EAV屬性定義操作
            ChildWinManagement.LoadMdiForm(thistypeof(FrmEntityTypeProperties));
        }, Keys.K, Keys.D0);
    }
}

這樣,我們就可以通過隱藏的組合按鍵,Ctrl+K, Ctrl+0調(diào)出我們特殊隱藏的窗體了。

一般我們可以用于處理一些特殊的操作,如隱藏高級功能、隱藏系統(tǒng)危險初始化操作,一些關(guān)鍵記錄的管理等等。


閱讀原文:原文鏈接


該文章在 2025/4/19 8:54:58 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 久久久久国产一区二区三区 | 亚洲国产精品一区二区美利坚 | 国产69久久精品成人看小说 | 亚洲AV无码一区二区色情蜜芽 | 国产成人精品无码一区二区老年人 | 久久视屏 | 成人a毛片高清视频 | 亚洲男人的天堂精品一区二区 | 美女裸体黄网站免费站 | 亚洲综合色五月久久婷婷 | 精品久久久久久久蜜桃臀 | 精品国产一区二区三区av | 国产精人妻无码一区麻豆 | 久久久久久久久精品天堂无码 | 成人无码一区二区免费 | 国产亚洲欧美在线人成a | 日本人做到喷泉 | 国产精品自拍av在线播放 | 国产欧美日韩三级 | 国产乱人伦AV麻豆网 | 中文字幕日韩精品第一页 | 国产99在线视频 | 久久亚洲av无码精品浪潮 | 成人国产一区二区三区精品不卡 | 99久久人妻无码精品系列蜜桃 | 波多野结衣加勒比 | 日韩精品人妻系列无码专区免费 | 粉红影视一区二区三区 | 国产精品国产精品专区不卡 | 国产第一页浮力影院草草 | 国产三级视频在线播放线观看 | 久久AV无码乱码A片无码波多 | a在线无码不卡 | 欧美顶级少妇做爰HD | 7799精彩视频天天看网站 | 久久人妻中文av字幕 | 国产av无码专区亚洲av极速版 | 国产无套露脸在线观看 | 久久久久人妻精品区一 | 涩涩视频在线看 | 黑丝教师爆乳翘臀上课 |