自定义TextBox事件

时间:2011-09-06 01:10:29

标签: c# forms events xna

我使用XNA GS 4.0在C#中编程。

我首先尝试捕获我管理的键盘输入事件。即当按下某个键时,由于IMessageFilter扫描键盘输入,它会引发一个键事件。

这可能听起来有点多余,但由于XNA停止触发默认的Form键事件,这似乎是一个简单的解决方案。

既然我已经从Message拼接了Message结构和KeyEventArgs结构,我可以简单地在主代码文件中触发一个事件。

我遇到的问题在于我想要一个文本框来正常响应这些关键事件消息。

问题:

我想将消息发送到文本框(扩展类),以便它可以读取必要的数据并像往常一样响应,而不必将消息转换为单个字符以手动追加。感谢。

编辑: 此问题的源代码很难提供此问题,因为此时实际上代码非常少。

现在我能真正给你的是我用来捕捉windows消息的方法

public class KeyboardFilter : IMessageFilter
{

    public event EventHandler KeyboardMessage;

    // This method is only used to detect key presses, it will NEVER remove any messages from the message loop
    public bool PreFilterMessage(ref Message m)
    {
        if (KeyboardMessage != null)
            KeyboardMessage(m, EventArgs.Empty);                

        return false; // Allow the message to be used by the message loop
    }
}

此过滤器的输出是Message对象。我需要一些方法让TextBox使用它并手动更新其Text属性,因为XNA阻止了正常的键盘输入。我想使用TextBox中内置的东西,如果它存在但是如果需要的话,我可以为每个单独的键自己手动附加字符。我只是想知道是否存在更优雅的解决方案。

0 个答案:

没有答案