Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Нажатие Enter,событие Button.Click,перевод каретки


Автор: Grandson 6.3.2008, 19:20
Нажатие клавиши Enter провоцирует событие Click находящейся в фокусе кнопки Button, которая закрывает форму. А мне по нажатию Enter нужно сделать перевод каретки в RichTextBox на этой же форме. Как решить проблему? smile 

Автор: Unsane 6.3.2008, 19:42
Первое, что пришло в голову:
Код

        bool IsEnter = false;

        private void button1_Click(object sender, EventArgs e)
        {
            if (IsEnter)
            {
                // при нажатии энтера
                richTextBox1.Text += "\n";
                richTextBox1.Focus();
                richTextBox1.SelectionStart = richTextBox1.Text.Length;
                IsEnter = false;
            }
            else
            {
                // клик мышью
            }
        }

        private void button1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                IsEnter = true;
        }

Автор: Grandson 7.3.2008, 11:53
При нажатии Enter обработчик button1_PreviewKeyDown почему-то не вызывается. Сразу попадает в button1_Click.  smile 

Автор: Grandson 7.3.2008, 12:42
Поставил обработчик button1_PreviewKeyDown на richTextBox1 - заработало!  smile 

Спасибо, Unsane!

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