2013-02-08 4 views
0

Как я могу закодировать две кнопки для прокрутки в RichTextBox вверх и вниз? Что я пытаюсь:Прокрутите страницу RichTextBox с помощью кнопок C#

private void btnScrollTop_Click(object sender, EventArgs e) { 
      if (rtbDefinitie.SelectionStart >= 30) { 
       rtbDefinitie.SelectionStart -= 30; 
       rtbDefinitie.ScrollToCaret(); 
      } 
     } 
private void btnScrollBottom_Click(object sender, EventArgs e) { 
      if (rtbDefinitie.SelectionStart <= 30) { 
       rtbDefinitie.SelectionStart += 30; 
       rtbDefinitie.ScrollToCaret(); 
      } 
     } 

Но, похоже, он застревает после того, как я дважды нажимаю кнопку прокрутки вниз. Что мне нужно сделать ?

+0

проблема заключается в том, что второй щелчок регистрируется как двойной щелчок. У меня нет опыта в том, как этого избежать. Mayby легче запустить таймер, который запускается при нажатии кнопки. – Casperah

+1

Что означает * застрять * точно означает? Пожалуйста, опишите вашу проблему в деталях! –

+0

@Casperah: или зарегистрируйте тот же обработчик для события DoubleClick. –

ответ

0

Второй щелчок, кажется, можно интерпретировать как DoubleClick, так что вы можете просто зарегистрировать это событие тоже и поставить тот же код, за ним (или замените 30 на 60)

EDIT: Если заклинивание приложений, потому что он работает и не имеет времени, чтобы обновить графический интерфейс, вы можете попробовать позвонить Application.DoEvents(); после каждого поднятого Clickevent:

private void btnScrollBottom_Click(object sender, EventArgs e) { 
      if (rtbDefinitie.SelectionStart <= rtbDefinitie.TextLength) { 
       rtbDefinitie.SelectionStart += 30; 
       rtbDefinitie.ScrollToCaret(); 
       Application.DoEvents(); 
      } 
     } 
+0

Это не работает. – TGeorge

+0

@ George02 Что именно не работает? – Seijikun

+0

После того, как я дважды нажимаю кнопку прокрутки вниз, а затем, когда я нажимаю ее, ничего не происходит. – TGeorge

Смежные вопросы