【发布时间】:2014-04-24 18:15:33
【问题描述】:
我一直在将我制作的控制台迷宫游戏转换为 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 )
但这会引发错误:
无法将类型 system.windows.forms.keys 隐式转换为 system.windows.form.keypresseventhandler
我认为这是因为我试图将键事件处理程序的实例与按下的键进行比较,但我不确定。任何指导将不胜感激。
【问题讨论】:
-
if(gameBorder.FormInstance.KeyPress += Keys.W )不是“比较陈述”。您不是“试图比较”事物,+=是一个加法赋值运算符。请参阅msdn.microsoft.com/en-us/library/sa7629ew.aspx 以了解开始。在提出问题之前,您是否尝试过阅读最基本的内容? -
@KonradMorawski 我很抱歉。
-
没有必要道歉 :) 如果我的评论居高临下,我很抱歉。我还是觉得先学点理论比较好,不然学起来会比较慢