|
|
|
TextBox -> Событие Change -> Пропуск событий
|
|||
|---|---|---|---|
|
#18+
Реализован алгоритм "быстрого поиска", т.е. в контрол ListView вставляются значения из общего массива значений, текст в которых содержит введённый в TextBox фрагмент. Алгоритм в виду большого объёма данных выполняется достаточно долго. Проблема заключается в том, что при достаточно бойком вводе фрагмента в TextBox, например, состоящем из трёх букв, реально отрабатывается одно событие TextBox_Change. Поясню примером: Есть следующая функция обработки события TextBox_Change: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Код "....." и есть алгоритм "быстрого поиска". на переменной TextBoxEntryCount планировалось построить механизм отложенного выполнения очереди событий Change, но оно не работает. И вот что показали исследования: Набираю в TextBox букву "э", в окне Immediate вижу: 0: "э" далее быстро набираю две буквы подряд "р" и "а" (именно набираю, а не вставляю из клипборда), в окне Immediate вижу: 0: "эр" И больше ничего. Общий вывод: Такое впечатление, что событие Change блокируется на весь период его выполнения. Как предотвратить его блокировку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2008, 12:01:16 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=244&tid=2181430]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
16ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 305ms |

| 0 / 0 |
