У меня проблемы с тем, что мои элементы управления .net не очищаются должным образом при переносе для использования в ActiveX.
Поведение по умолчанию оставляет приложение тестового контейнера SDK (TstCon32.exe) работающим как процесс без GUI, когда я пытаюсь закрыть его.
Обходной путь, который я первоначально нашел через Google, состоял в том, чтобы переопределить WndProc и вызвать Environment.Exit(0)
вручную.Это заставило TstCon32.exe полностью завершить работу;однако это ломает приложение, где мне нужно разместить контроль.
Приложение является MDI, и WM_DESTROY отправляется, когда страница, содержащая элемент управления, закрыта, после чего вызов Environment.Exit(0)
уничтожает все приложение.Я попробовал Application.Exit()
в качестве альтернативы, но из-за этого TstCon32 все еще работает невидимо.
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
// WM_DESTROY
if (m.Msg == 2)
Environment.Exit(0);
}