我想在没有表单的地方检索 Ctrl
键的状态。
通常要获得按键状态,我会使用 Control_KeyDown/KeyUp 事件。但是,需要知道是否按下 Ctrl 的代码在任何形式之外。显示了一个表单,但代码应该不依赖于该表单,而是自行查找关键状态。
当然有办法做到这一点,只是我没有成功地在谷歌上找到它。
请注意,虽然代码“没有”可用的表单,但它仍然是一个 WinForms 应用程序,因此框架可能会为我提供一些类/对象来实现该目标。
背景:
在应用程序启动阶段,如果在那一刻按下 Ctrl 键,我希望一个步骤的行为有所不同。启动阶段显示启动画面,但启动代码并不知道这一点。相反,它会向回调报告进度,并且该回调会更新启动画面。
如果我使用闪屏来获取 KeyDown 事件,我会让启动代码依赖于该闪屏,这会引入循环依赖。我想保留移除初始屏幕并替换为不同内容的自由。
最佳答案
您可以在 Control
上使用名为 ModifierKeys
的静态方法
例如:
if (Control.ModifierKeys == Keys.Control)
{
//...
}
关于c# - WinForms 在没有 Form/UserControl 的情况下检索键盘状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3829725/