2013-09-11 3 views
0

Итак, я просмотрел, может быть, пять-десять вопросов о stackoverflow об установке текста в текстовое поле с использованием ряда команд. Я попробовал SetWindowText, SendMessage с EM_SETSEL и EM_REPLACESEL, а также несколько других, о которых я не могу вспомнить. По большей части я был успешным, за исключением одного странного случая.Как заставить текстовое поле обновить его текст

Когда я устанавливаю текст этого конкретного текстового поля, ничего не появляется, ничего не меняется. Сначала я подумал, что неправильно настроил данные. Тем не менее, когда я использую Spy ++ или Winspector для просмотра текста текстового поля, здесь отображаются правильные данные с моими изменениями, но не отображаются в фактическом текстовом поле. Даже незнакомец, когда я нажимаю на форму с текстовым полем, который я «редактировал», данные spy ++ и Winspector меняются на то, что отображается текстовое поле.

Я говорил с моим другом, и он упомянул, что это может быть состояние гонки. Я пытаюсь отредактировать это окно, и текстовое поле редактируется каким-то другим потоком.

Если у кого-то есть предложения, я бы очень признателен.

Редактировать: Хорошо, поэтому я сделал еще кое-что, чтобы понять, что вызывает проблему с изменением текста. Я открыл Winspector и просмотрел текстовое поле. Оттуда я смог идентифицировать сообщения, отправленные в окно, между последним, когда текстовые данные верны, и в первый раз, когда он изменится. Я также экспортировал результаты в XML-документ с параметрами, но он имеет длину около 680 строк.

Heres список сообщений: http://i.imgur.com/SBCFHK8.png

+0

Вы пробовали вызова 'InvalidateRect' на контроле? Его просто нужно перерисовать. –

ответ

0

Контроль может просто нужно перекрасить сама.

Вы можете попробовать два API, чтобы сделать это:

+0

Я попытался использовать InvalidateRect, не смог ничего получить. Я просто попытался сделать RedrawWindow, и ничего не изменилось. Я считаю, что использовал его правильно, RedrawWindow (refBox, IntPtr.Zero, IntPtr.Zero, RedrawWindowFlags.AllChildren); – user1031745

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