0 / 0 / 0
Регистрация: 21.03.2008
Сообщений: 26
|
|
1 | |
Как перехватить в TextBox событие вставки данных из буфера ?15.09.2008, 23:03. Показов 2652. Ответов 5
Метки нет (Все метки)
Написал свой MaskEdit на основе TextBox и выяснилось, что пользователи часто вводят данные
копированием и вставкой из буфера. Короче пока ввод идет по буквам - все Ok Иначе - беда. Как мне перехватить событие вставки, а там я уже разберусь. Помогите пожалуйста.
0
|
15.09.2008, 23:03 | |
Ответы с готовыми решениями:
5
Перехватить событие вставки текста в TextBox TextBox с автозаполнением. Как перехватить событие выбора значения из списка? TextBox: вырубить контекстное меню + правильная обработка вставки из буфера Как перехватить строку из буфера |
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
|
||||||
16.09.2008, 04:33 | 2 | |||||
черт.. с сначала не правильно прочитал - думал что для ричтекстбокса.. но в принципе не критично - там тож самое
Короче говоря - писал только что минут 15 - придумывал работает это так:
Надеюсь что смог объяснить идею
0
|
Vita
|
|
16.09.2008, 15:17 | 3 |
Можно сохранять размер до и после вставки (событие _Change). Если вставляется 1 символ, то без разницы - с клавиатуры или из буфера обмена. А если вставляется БОЛЬШЕ 1 символа, тут что-то и придумывать можно.
|
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
|
|
16.09.2008, 15:21 | 4 |
ну здесь задача явно стояла - отловит ВСТАВКУ ИЗ БУФЕРА... по этому и прошлось такой код писать... можно было бы конечно и по длине делать, но тогда бы решение не удовлетворяло условию
0
|
1 / 1 / 0
Регистрация: 24.07.2007
Сообщений: 178
|
|
16.09.2008, 19:04 | 5 |
1) Можно в событие KeyDown, когда нажимают Ctrl+V, или в собитие Change, как предлагалось ранее, сохранить старый текст
2) Для ввода с клавиатуры (Ctrl+V) обнулить событие: KeyCode = 0 Shift = 0. Тогда дальше (KeyAscii и KeyUp) события не пойдут 3) Воспользоваться функцией SendKeys разобрав содержание буфера на символы, сделать так, как будто бы это пользователь сам набрал текст по одной букве. 4) Вроде должно получиться... Только со стандартным всплывающим окошком (Undo, Copy, Paste и др.) что делать - это сложнее
0
|
0 / 0 / 0
Регистрация: 21.03.2008
Сообщений: 26
|
|
17.09.2008, 01:48 [ТС] | 6 |
Спасибо всем большое.
Я козел, что сам не додумался до этого, конесно нудно всю обработку писать в Change.
0
|
17.09.2008, 01:48 | |
17.09.2008, 01:48 | |
Помогаю со студенческими работами здесь
6
Отловить событие на вставку данных из буфера обмена Как перехватить WMI-событие Как создать событие и перехватить его? Как в TMemo перехватить событие WM_COPY Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |