Как перехватить в TextBox событие вставки данных из буфера ? - VB
Формулировка задачи:
Написал свой MaskEdit на основе TextBox и выяснилось, что пользователи часто вводят данные
копированием и вставкой из буфера. Короче пока ввод идет по буквам - все Ok
Иначе - беда.
Как мне перехватить событие вставки, а там я уже разберусь.
Помогите пожалуйста.
Решение задачи: «Как перехватить в TextBox событие вставки данных из буфера ?»
textual
Листинг программы
- Option Explicit
- Dim RtbKeyBoardEnter As Boolean, RtbKeyS(1)
- 'Объявляем переменную - показывает статус, откуда произошло изменения. Массив - хранит два последних аски кода, которые были нажаты на клаве. При том если это были коды комбинации клавиш Shift+Insert или Ctrl+V, то они обрабатываются....
- Private Sub RichTextBox1_Change()
- If Not RtbKeyBoardEnter Then MsgBox 'Вставка из буфера!' 'если ввод не с клавы (т.е. если идет вставка из буфера (независимо - мышой или с помощью комбинаций - выводим мессагу)
- '**************** твой код *************
- RtbKeyBoardEnter = False 'снимаем флажок ввода с клавы
- End Sub
- Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
- RtbKeyBoardEnter = True 'ставим флажок ввода с клавы
- RtbKeyS(0) = RtbKeyS(1) ' изменяем массив
- RtbKeyS(1) = KeyCode
- If RtbKeyS(0) = 16 And RtbKeyS(1) = 45 Then RtbKeyBoardEnter = False 'проверка - являются ли два последних нажатия комбинацией клавиш для вставки... если являются, то это означает что изменения произошли не с клавы...
- If RtbKeyS(0) = 17 And RtbKeyS(1) = 86 Then RtbKeyBoardEnter = False
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д