C# 패널 내에 애플리케이션 포함
C# 프로그램의 사용자 정의 패널 내에 외부 애플리케이션을 포함하면 단일 사용자 내에서 여러 애플리케이션을 원활하게 통합할 수 있습니다. 인터페이스. 외부에서 애플리케이션을 실행하는 대신 이 기술은 더욱 응집력 있고 편리한 사용자 경험을 제공합니다.
해결책: Win32 API 활용
Win32 API는 외부 애플리케이션을 삽입하기 위한 솔루션을 제공합니다. 창 핸들을 조작하여 응용 프로그램을 만듭니다. 주요 단계는 다음과 같습니다.
코드 예
다음 코드는 C# 패널에 notepad.exe를 포함하는 방법을 보여줍니다.
using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Windows.Forms; namespace EmbeddedApplication { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Process p = Process.Start("notepad.exe"); Thread.Sleep(500); // Allow the process to open its window SetParent(p.MainWindowHandle, panel1.Handle); } [DllImport("user32.dll")] static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); } }
대체 접근 방식
대체 Thread.Sleep()의 경우 코드는 WaitForInputIdle을 사용하여 애플리케이션 창이 완전히 로드되는 시기를 확인할 수 있습니다.
Process p = Process.Start("notepad.exe"); p.WaitForInputIdle(); SetParent(p.MainWindowHandle, panel1.Handle);
추가 리소스
외부 응용 프로그램을 포함하려면 코드 프로젝트 문서: [WinForm에서 EXE 응용 프로그램 호스팅]을 참조하세요. 프로젝트](https://www.codeproject.com/Articles/398354/Hosting-EXE-Applications-in-a-WinForm-project).
위 내용은 C# 패널 내에 외부 응용 프로그램을 포함하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!