我有一个很奇怪的问题。
我试图运行这段代码,每当我按下空格键时,它都会打印出我想要的倍数'A'。
注释:代码位于main内部,Key.IsPressed
使用WinAPI GetKeyState
方法,空格常量是空格键的虚拟键。
while(true) if(Key.IsPressed(Key.Space)) Console.Write('A');
但是当我将Console.Write('A');
替换为System.Windows.Forms.MessageBox.Show("A");
时,它仅在我第一次按空格键时显示消息框(我关闭消息框后,然后按再次空格)。
即使是很奇怪的东西,如果我从太空改变钥匙来输入也能正常工作。
目的是创建一个隐藏的快捷方式管理器程序,这样我就无法使用任何需要焦点的键读取器(例如Console.ReadKey
)。
答案 0 :(得分:2)
每当您使用框架方法并且它没有达到您的期望时,您都应该首先read the documentation。在那里,您将找到有关Show
方法如何工作的信息,例如:
消息框是模式对话框,这意味着除了模式窗体上的对象外,无法进行任何输入(键盘或鼠标单击)。该程序必须先隐藏或关闭模式形式(通常是响应某些用户操作),然后才能输入另一种形式。