<Window Closing="Window_Closing"></Window>
假设按键用于关闭窗口。有没有办法确定使用了哪些密钥?
我知道您可以使用KeyDown事件但需要在Closing事件中执行此操作。
谢谢!
答案 0 :(得分:1)
不要试图确定关闭事件的原因以禁用某些击键,而是禁用所有关闭方法,直到你的秘密&#34;键盘输入。
使用KeyDown
事件拦截并记录所有击键,并在输入密码组合时设置标记,然后调用Close()
。
在Closing
事件中,除非设置了该标志,否则请始终设置e.Cancel = true
。
这是一个简单的例子:
bool _allowClose = false;
void OnKeyDown(object sender, KeyEventArgs e)
{
if (DetectSecretCombo(e)) //Implement however you see fit.
{
_allowClose = true;
Close();
}
}
void OnClosing(object sender, ClosingEventArgs e)
{
_e.Cancel = !_allowClose;
}