如何使用C#,使形式系统模式?(How to make form system modal usin

2019-06-26 14:41发布

我需要显示形式顶级全系统,如在/所有/其它窗口在屏幕上。 我不知道这通常是/坏UI实践/,但我心里有非常具体的方案。

我们打算用普通的Windows PC机的POS现金registrators。 我看不到屏幕上的选项,打开钱箱。 这将是很坏的人只是在屏幕上按的东西,让存取款时,店员不看。 因此,我们的电脑装备有RFID阅读器和每个业务员都有他/她自己的RFID卡将被用于验证。

但是我需要一个机制来锁定计算机(或使其无法使用)时,业务员就会消失。 注销似乎太大滋扰。

任何想法表示欢迎。

LP德扬

Answer 1:

那么,试错的一天后,我来排序的解决方案。

它包括以下步骤:

1.当“锁定”按钮被按下新的(空)/桌面创建/。 计划在此桌面全屏的形式和登录过程中运行。 没有别的切换到或此桌面上运行。

2.任务管理器通过注册表禁用。 当然,有人不请自来仍然可以访问CTRL-ALT-Delete菜单,但并没有什么特别的伤害,他可以在那里做的。

3. Alt-F4键和这样被禁用。

4.当认证制成,程序切换回原始的桌面和一切正常进行。

有一些P /调用必修课。 如果有人想这样做类似的东西,也许他/她会找到我的裸露的骨头例如有帮助- 链接文字

LP德扬



Answer 2:

我认为你需要寻找到调用到Win32 API的实现这一目标。

你需要考虑:

的ShowWindow和SetWindowPos

与类似以下内容(注意,这是伪代码)代码调用它们:

[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

static void ShowTopmost(Form frm)
{
     ShowWindow(frm.Handle, SW_SHOWMAXIMIZED);
     SetWindowPos(frm.Handle.ToInt32(), HWND_TOPMOST,
        0, 0, [width of desktop], [height of desktop],
        SWP_SHOWWINDOW);
}


Answer 3:

窗体有一个TopMost属性。

设置Form.TopMost = true



文章来源: How to make form system modal using C#?
标签: c# .net security