C# Windows窗体自定义控件键关闭事件无法正常工作
我有一个小问题,我试图读取c#中的键输入,键a和D工作,但Z、空格和c不工作?这是我的密码:C# Windows窗体自定义控件键关闭事件无法正常工作,c#,visual-studio,input,picturebox,C#,Visual Studio,Input,Picturebox,我有一个小问题,我试图读取c#中的键输入,键a和D工作,但Z、空格和c不工作?这是我的密码: private async void RaceSelection_KeyDown(object sender, KeyEventArgs e) { if (movable == true) { if (e.KeyCode == Keys.A) { Character.Left -= 3
private async void RaceSelection_KeyDown(object sender, KeyEventArgs e)
{
if (movable == true)
{
if (e.KeyCode == Keys.A)
{
Character.Left -= 3;
playerpos = Character.Location;
}
if (e.KeyCode == Keys.D)
{
Character.Left += 3;
playerpos = Character.Location;
if (Character.Bounds.IntersectsWith(pictureBox6.Bounds))
{
if (Character.Bounds.IntersectsWith(pictureBox4.Bounds))
{
pictureBox4.Location = new Point(999999, 9999999);
Character.Top += 9;
await Task.Delay(100);
Character.Top += 9;
await Task.Delay(100);
Character.Top += 9;
await Task.Delay(100);
Character.Top += 9;
await Task.Delay(100);
Character.Top += 9;
await Task.Delay(100);
Character.Top += 9;
await Task.Delay(100);
Character.Top += 5;
this.Controls.Clear();
this.Controls.Add(GapFiller1);
dungeonone();
}
}
if (e.KeyCode == Keys.Space)
{
Character.Top -= 25;
await Task.Delay(125);
Character.Top += 25;
}
if (e.KeyCode == Keys.C)
{
if (Character.Bounds.IntersectsWith(pictureBox5.Bounds))
{
TownOne();
}
}
if (e.KeyCode == Keys.Z)
{
if (Character.Bounds.IntersectsWith(pictureBox6.Bounds))
{
if (EntityVar.DraugarHealth == 1)
{
Engine.EntityVar.Draugartakesdamage = false;
this.Controls.Remove(pictureBox6);
LastKill = "Draugar";
label3.Text = "Well Done! but what is that ladder over there???";
}
else
{
Engine.EntityVar.DraugarHealth -= 1;
if (Engine.EntityVar.Draugartakesdamage == true)
{
this.Controls.Add(HitMarker);
HitMarker.BringToFront();
await Task.Delay(250);
this.Controls.Remove(HitMarker);
}
}
}
}
}
}
}
有人知道我做错了什么吗???顺便说一句,我正在做一个游戏,我很清楚我不是用最好的方式做的,但哦,我就是这样做的:D,不管怎样,如果你知道为什么它不起作用,我将非常感激 问题似乎在于你只是把代码括错了。在给定的代码中,Z、C和空格键处理程序实际上位于D处理程序中。我假设您不希望这个逻辑存在,所以将它们移到D处理程序之外,它将解决您的问题
另外,使用一个开关或其他if块来执行此操作:)您如何确定它不工作?你能描述一下你的测试吗?