Используйте SetParent на собственной консоли проекта, на панели winforms - PullRequest
1 голос
/ 23 июня 2019

Я пытаюсь воспользоваться консолью типа консольного проекта для отображения вывода из моей формы Windows.

В основном мой проект настроен на консольный тип проекта. Я открываю форму окна из Main. В этой форме окна у меня есть панель, в которой я хотел бы использовать SetParent() ( pinvoke ), которая будет содержать консоль.

Возможно ли это? Я даже пытался добавить другой консольный проект в решение и разместить консольный проект ТА на панели, но он становится невидимым, как только вызывается SetParent(). Я пытался использовать ShowWindow() ( pinvoke ), чтобы сделать его видимым, но ничего не происходит. Как я могу это сделать?

Я сделал обертку над этими функциями Win32, но я чувствую, что они довольно понятны. Вот код:

    private void button1_Click(object sender, EventArgs e)
    {
        Utilities.SetParent(Utilities.GetWindowHandle(ConsoleTitle), panel1.Handle);
        Utilities.SetWindowVisible(Utilities.GetWindowHandle(ConsoleTitle), true);
    }

ConsoleTitle - это просто строка, заданная для заголовка моей консоли, а именно «Консоль тестера». Во время записи консоль исчезает при вызове моего кода, поэтому я знаю, что она захватывает дескриптор окна и выполняет что-то .

Спасибо за любую помощь!

...