Как перехватить в 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д