Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > запрет на ввод некоторых символов


Автор: Darkmaster 14.10.2008, 16:49
Возник такой вопрос. При вводе текста в RichText Box нужно сделать так, чтобы когда встречается символ "<" - его ввод был запрещен и он не появлялся. пока я реализовал эту возможность достаточно криво:

на событии KeyUp я прописал следующее:

Код

if (richTextBox1.Text.Length > 0)
                for (int i = 0; i < richTextBox1.Text.Length; i++)
                {
                    if (richTextBox1.Text[i] == '<')
                        richTextBox1.Text = richTextBox1.Text.Replace("<", "");
                    if (richTextBox1.Text[i] == '>')
                        richTextBox1.Text = richTextBox1.Text.Replace(">", "");
                }  

Все бы ничего, но всегда когда он удаляет символ < или > курсор переходит в самое начало RichtTextBox'а, а не остается в том месте, где присутствовал. Собственно, такой вопрос - каким образом можно запретить ввод конкретного символа как-нибудь иначе. Ведь есть событие KeyPress, которое срабатывает еще до прорисовки символа. Но как там можно запретить ее?


Автор: QryStaL 14.10.2008, 17:40
Код

private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Shift == true && e.KeyCode == Keys.Oemcomma)
    {
        e.SuppressKeyPress = true;
    }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)