Какой метод устанавливает текст текстового поля, когда пользователь вводит информацию в текстовое поле? - PullRequest
0 голосов
/ 17 ноября 2011

Я нахожусь в процессе изучения того, как реализовать пользовательские элементы управления путем наследования от родительских классов в C #.

Мне нужно переопределить процедуру, которая запускается, когда пользователь вводит текст.Очевидно, я мог бы добавить событие для запуска, используя TextChanged, но мне кажется, что это грязный подход к очистке.

Я рассмотрел переопределение свойства Text {get;set;}, но это не работает.1008 * Помощь

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

Вы можете использовать событие KeyDown.Обратите внимание, что пользователи по-прежнему могут вставлять вещи, не вызывая событие KeyDown.Чтобы перехватить весь ввод, вам нужно обработать TextChanged, как вы и думали;в этом нет ничего грязного.

0 голосов
/ 17 ноября 2011

Один из подходов, который необходимо рассмотреть, - это создание собственного TextBox, расширяющего стандарт TextBox.Вы можете override ряд свойств и методов, включая OnKeyPress для обработки ввода пользователя.

Простой пример:

class MyTextBox : TextBox
{
    protected override void OnKeyPress(KeyPressEventArgs e) {
        if (e.KeyChar == '!') {
            e.Handled = true;
        } 
        base.OnKeyPress(e);
    }
}

В этом примере TextBox будет игнорировать ввод, когда пользователь вводит восклицательный знак.Вы будете использовать этот TextBox так же, как и стандартный элемент управления Winform TextBox.

Вы можете использовать Intellisense в Visual Studio, чтобы увидеть, какие override доступны.Просто начните создавать нового члена в классе, набрав «переопределить», и все переопределяемые члены появятся.

РЕДАКТИРОВАТЬ См. эту статью на codeproject.com дляпример.Элемент управления, представленный в статье, расширяет TextBox для специальной фильтрации нецифровых символов, но вы можете легко изменить его, чтобы отфильтровать символы, которые необходимо отфильтровать.

Еще один аргумент для использования пользовательского элемента управления: вы можете использовать его повторномежду проектами без необходимости перекодировать его каждый раз.

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