Пользовательское событие TextBox - PullRequest
0 голосов
/ 06 сентября 2011

Я программирую на C #, используя XNA GS 4.0.

Я начал с попытки отловить события ввода с клавиатуры, которыми я управлял. То есть когда клавиша нажата, она вызывает событие клавиши благодаря помощи сканирования IMessageFilter для ввода с клавиатуры.

Это может показаться немного избыточным, но, поскольку XNA не позволяет запускать события ключа формы по умолчанию, это кажется простым решением.

Теперь, когда у меня есть и структура Message, и структура KeyEventArgs, которые я собрал из сообщения, я могу просто вызвать событие в основном кодовом файле.

Проблема, с которой я столкнулся, заключается в том, что я хочу, чтобы текстовое поле отвечало на эти ключевые сообщения о событиях, как обычно.

Вопрос:

Я хотел бы отправить Сообщение в текстовое поле (расширенный класс), чтобы оно могло читать необходимые данные и отвечать, как обычно, без необходимости преобразовывать сообщение в один символ для добавления вручную. Спасибо.

Edit: Исходный код для этой проблемы трудно предоставить для этой проблемы, поскольку на данный момент кода на самом деле очень мало.

Пока все, что я могу вам дать - это метод, который я использую для захвата окон. Сообщения

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
    }
}

Выходные данные этого фильтра - объект сообщения. Мне нужен какой-то способ заставить TextBox использовать это и обновить его свойство Text вручную, потому что XNA блокирует нормальный ввод с клавиатуры. Я хотел бы использовать что-то встроенное в TextBox, если оно существует, но при необходимости я могу вручную добавлять символы для каждой отдельной клавиши, нажимая сам. Я просто хочу знать, существует ли более элегантное решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...