Нужен IntPtr для формы (VB.Net) - PullRequest
0 голосов
/ 08 мая 2009

Мне нужно intPtr для формы. Control.FromHandle (control) дает мне элемент управления из дескриптора, но мне нужно наоборот - получить дескриптор из элемента управления. Как мне это сделать?

Ответы [ 2 ]

4 голосов
/ 08 мая 2009

Попробуйте

Dim handle As IntPtr = someControl.Handle

Примечание. Это будет работать только после создания дескриптора для элемента управления. Существует промежуток времени между созданием элемента управления и его визуализацией до некоторой степени, когда этот может вернуть IntPtr.Zero

1 голос
/ 08 мая 2009

Примечание. Это будет работать только после создания дескриптора для элемента управления. Существует промежуток времени между созданием элемента управления и его визуализацией до некоторой степени, когда это может вернуть IntPtr.Zero

Я должен не согласиться с JaredPar по этому вопросу: метод доступа get свойства Handle вызывает CreateHandle, если дескриптор еще не создан (вы можете проверить это с помощью Reflector). Важно знать об этом, потому что в некоторых случаях это может иметь неожиданные последствия

...