- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前正在开发一款 WinForms 项目小游戏。游戏场由玩家(一个单独的类)可以继续移动的瓷砖网格构建而成。我希望玩家使用箭头键移动并为它设置了一个事件处理程序,但它似乎从未被调用过。
(最小化)播放器类,它为 KeyEventArgs 实现 System.Windows.Forms 包:
public class Player : MovableObject
{
public Player(Playtile position) : base(position)
{
EntityColor = ElementColors.PlayerColor;
PostConstructor(position);
}
/// <summary>
/// Reads keypress via eventhandler KeyEventArgs (key down).
/// </summary>
private void ReadKeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Up:
// move up.
break;
case Keys.Right:
// move right.
break;
case Keys.Down:
// move down.
break;
case Keys.Left:
// move left.
break;
}
}
}
目前,ReadKeyDown 永远不会被调用。我如何实际将 KeyEventDown 事件分配/绑定(bind)到播放器,以便它实际上在按下按键时调用该方法?
KeyEventArgs in C#似乎只是说 this.KeyDown += ReadKeyDown;
,但它没有将 KeyDown 识别为任何东西,也没有给我可能丢失的程序集引用。
最佳答案
KeyDown
是 Control
的成员,因此在您的情况下,您可以在 Form
中订阅该事件。
喜欢以下内容:
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
textBox1.KeyDown += TextBox1_KeyDown;
}
private void TextBox1_KeyDown(object sender, KeyEventArgs e)
{
}
}
完整示例参见官方文档:
现在您可以做的是在收到此类事件后调用目标类中的方法:
public class MyClass
{
public void OnKeyDown(KeyEventArgs e)
{
// ...
}
}
public partial class Form2 : Form
{
MyClass _instance = new MyClass();
public Form2()
{
InitializeComponent();
textBox1.KeyDown += TextBox1_KeyDown;
}
private void TextBox1_KeyDown(object sender, KeyEventArgs e)
{
_instance.OnKeyDown(e);
}
}
关于c# - 在 Form 以外的类上接收和读出 KeyEventArgs 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55642922/
为什么 naam 输出(NULL)? (抱歉,我知道这是基本的东西,但我是 plist 的新手) 这是plist: 方法如下: - (id) init { self = [super init]; i
我正在使用这个问题的答案中描述的方法向帧缓冲区对象绘制笔触: opengl - blending with previous contents of framebuffer 此方法正确 alpha -
我想将 xml 文件读出到文本 block 中,用户可以在文本 block 中编辑此文本并将附加更改应用回 xml 文件...我目前被卡住了。这是我到目前为止所做的: private void
我需要从我的网络应用程序中的任何 Controller 读出所有可用的操作。这样做的原因是一个授权系统,我需要为用户提供一个允许操作的列表。 例如。: 用户 xyz 具有执行显示、列表、搜索操作的权限
我有一个包含城市区域的 KML 文件,并想用 Javascript 将其读出,以便在 map 上显示这些叠加层(多边形)(Google Maps API v.3)此外,我想从 KML 文件中保存 Ge
我尝试将 onClick 函数从图像复制到 span 对象。但我不明白。 我已经直接使用 onClick=img.onClick、onClick=new Function(img.onClick) 等
我正在考虑使用 Javascript 自动将 border-radius、transform、box-shadow 等 CSS3 属性转换为它们的浏览器特定对应物。 我做了一些研究,发现您可以迭代通过
我有一个关于从 XML 文件读取的问题。 我的 XML 文件: 我的代码: rapidxml::xml_document<> doc; r
我正在为 dwm 构建一个状态栏,我想通过终端读出未读邮件数(使用 grep、sed 或 fopen 作为文件)并通过 fopen/popen 获取它。 我使用的是 ubuntu/dwm/thunde
我尝试用 C# 读出 WMI 数据。我使用 System.Management 命名空间。对于大多数 WMI 查询,它工作得很好。但是,当我尝试从 Win32_PerfFormattedData_Tc
我想使用 Blender 本身的脚本模式读出 Blender 对象的自定义属性。到目前为止,我发现只能读出您在脚本模式下自己创建的自定义属性。但是我想读出我自己标记的自定义属性。这意味着我没有要使用的
我正在尝试读出包含如下数据的文本文件: 1 1 34.5 12.5 1 2 65.3 23.6 1 3 94.3 12.3 依此类推,两个整数后跟两个坐标,冲洗并重复。我使用这段代码(我真的不太懂编程
我想知道如何读出 mp3 歌曲的持续时间。如果我是对的,它不是 ID3 标签,所以我想我必须以某种方式计算它?对于其余的 ID3 标签,我正在使用这个库: http://javamusictag.so
在 iOS 中使用 VoiceOver,当查看分段 Controller 之类的东西时,VoiceOver 会读取分段及其索引,即“已选择:某事:4 之 2”。 我有一个包含几个按钮的自定义 UIVi
我正在尝试从 Microsoft EDGE 浏览器读出标题和 URL。最好使用 System.Windows.Automation 来执行此操作,因为代码库已经使用它来解决其他问题。 可以通过 Sys
从顶部滚动 473 像素后,我有一个显示/隐藏菜单栏。现在我想通了,在其他页面上我需要以不同的 px 偏移量显示/隐藏它(例如,因为顶部的图片更大)。 所以理论上,当我滚动“ anchor ”时,jQ
我是一名优秀的程序员,十分优秀!