Недавно я пытался работать на старом проекте у меня был я не в состоянии получить SetParent работать он продолжает давать мне ошибку «InvalidOperationException», вот код:SetParent не работает InvalidOperationException
private void button1_Click(object sender, EventArgs e)
{
Process proc = Process.Start("calc.exe");
proc.WaitForInputIdle();
Thread.Sleep(500);
SetParent(proc.MainWindowHandle, this.Handle);
}
Его вызывают с помощью кнопки, и когда он пытается установить родительский элемент, он выдает ошибки. Все, что я могу найти в Интернете, говорит, что мой код прав.
Где ваш метод SetParent? Я не думаю, что он может установить родительский процесс в другой процесс. Взгляните сюда, попробуйте сначала, вероятно, работает: http://stackoverflow.com/questions/10773003/attach-form-window-to-another-window-in-c-sharp –
'SetParent' - родной Windows API и не может выбросить никаких исключений .NET никогда. Свойство 'Process.MainWindowHandle' может. Свойство 'Control.Handle' тоже может. В любом случае трассировка стека исключений сообщит вам, в каком конкретном случае будет выбрано исключение, и сообщение будет содержать более подробную информацию, чем просто «InvalidOperationException». В вашем вопросе недостаточно информации, чтобы кто-либо мог ответить на ваш вопрос, но ваш отладчик должен быть в состоянии рассказать вам все, что вам нужно знать. – hvd
В нем говорится, что процесс завершен, поэтому запрошенная информация недоступна, может быть, это проблема с окнами 10? – Austin