gpt4 book ai didi

c# - 在表单中接受用户输入

转载 作者:太空宇宙 更新时间:2023-11-03 13:23:34 25 4
gpt4 key购买 nike

我一直在将我制作的控制台迷宫游戏转换为 Winform,但在尝试获取用户输入时出现错误。当我制作我使用的主机游戏时

Console.Read();
ConsoleKeyInfo press = Console.ReadKey(true);
press.Key == ConsoleKey.DownArrow;

然而,由于它现在是一个 winform 应用程序,而不是一个控制台应用程序,我无法通过这种方式获得输入,所以我没有这样做,而是试图通过创建一个表单实例来获取输入,然后创建一个实例keyeventhandler,像这样

public static gameBorder FormInstance;
public event KeyEventHandler KeyDown;

并在另一个类中的比较语句中调用它,如下所示:

if(gameBorder.FormInstance.KeyPress += Keys.W )

然而这会引发错误:

cannot implicitly convert type system.windows.forms.keys to system.windows.form.keypresseventhandler

我认为这是因为我正在尝试将键事件处理程序的实例与按下的键进行比较,但我不确定。任何指导将不胜感激。

最佳答案

这个:

gameBorder.FormInstance.KeyPress +=

是您订阅事件处理程序的方式。 Keys.W 不是事件处理程序。

当您键入 += 时,Visual Studio 会帮您一个大忙,为您添加一个新的事件处理程序。继续让它这样做,然后您可以测试在它生成的函数中按下了什么键(使用 KeyPressEventArgs )。

分配事件处理程序:

gameBorder.FormInstance.KeyPress += HandleKeyPress;

处理事件:

private void HandleKeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 'W')
{
}
}

关于c# - 在表单中接受用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23276716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com