2008-10-29 2 views

ответ

5

(Отвечая на мой собственный вопрос, для других, и для дальнейшего использования)

Я думаю (еще не совсем уверен), что это происходит потому, что InvokeRequired всегда возвращает ложь, если контроль еще не было погруженных/показано на рисунке. Я сделал обходной путь, который, кажется, работает на данный момент, который является простой ссылкой ручки соответствующего элемента управления в его создателе, например, так: (? Смотрите http://ikriv.com:8765/en/prog/info/dotnet/MysteriousHang.html - вниз cached version)

var x = this.Handle; 

(Смежный вопрос: Boiler plate code replacement - is there anything bad about this code?)

3

Если ручка еще не существует, вы можете принудительно ее подклассифицировать и вызвать CreateHandle; тем не менее, главный вопрос: почему вы делаете вещи с той формой, которая не была загружена? Лично я только начал такую ​​операцию после Load.

+1

Форма загружается, но это элементы управления, которые динамически загружаются в пользовательский элемент управления, который еще не установлен на Visible = true (я думаю). – Benjol 2008-10-29 09:42:24

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