MessageBox表现怪异

时间:2018-10-10 18:35:06

标签: c# winforms messagebox

我有一个很奇怪的问题。

我试图运行这段代码,每当我按下空格键时,它都会打印出我想要的倍数'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)。

1 个答案:

答案 0 :(得分:2)

每当您使用框架方法并且它没有达到您的期望时,您都应该首先read the documentation。在那里,您将找到有关Show方法如何工作的信息,例如:

  

消息框是模式对话框,这意味着除了模式窗体上的对象外,无法进行任何输入(键盘或鼠标单击)。该程序必须先隐藏或关闭模式形式(通常是响应某些用户操作),然后才能输入另一种形式。