C# 无法获取空格键输入
当我按下空格键时,我想要一个变量递增。 这是我迄今为止尝试过的,但似乎不起作用。没有错误消息,所以我不知道出了什么问题C# 无法获取空格键输入,c#,visual-studio,C#,Visual Studio,当我按下空格键时,我想要一个变量递增。 这是我迄今为止尝试过的,但似乎不起作用。没有错误消息,所以我不知道出了什么问题 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } int Coins = 0; int ButtonKeyNumber = (int)Key.Space; private vo
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
int Coins = 0;
int ButtonKeyNumber = (int)Key.Space;
private void textBlockCoins_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyValue == ButtonKeyNumber)
{
Coins = Coins + 1;
textBlockCoins.Text = "You Have " + Coins + "Coins";
}
}
}
当我运行代码时,文本框只显示“你有0个硬币”。
变量ButtonkyNumber存在,因为我希望能够轻松更改需要按下的键。您可能使用了错误的
键。使用System.Windows.Forms.Keys
类,这是由KeyEventArgs.KeyCode
提供的类型。试试这样吧
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
int Coins = 0;
Keys CoinKey = System.Windows.Forms.Keys.Space;
private void textBlockCoins_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == CoinKey)
{
Coins = Coins + 1;
textBlockCoins.Text = "You Have " + Coins + "Coins";
}
}
}
在按下空格键时,您仍然必须确保正确的控件具有焦点。在表单上将KeyPreview设置为true,您将捕获它们:
为什么需要变量?直接与Key.Space
进行比较,然后使用调试器找出您在e.KeyValue
中得到的键。是否实际调用了KeyDown事件回调?确保正确的控件具有焦点(首先,单击textBlockCoins)以接收KeyDown事件。在if
上放置一个断点,查看e.KeyValue的实际值!textBlockCoins\u按键是否触发?