Вы можете реализовать свои «окна» в качестве пользовательских элементов управления и разместить каждый пользовательский элемент управления на отдельной вкладке на вкладке.Не имеет значения, что контролирует сам пользовательский элемент управления.Поэтому он наверняка может также содержать элемент управления с вкладками, на котором размещены другие пользовательские элементы управления.
Чтобы использовать окно внутри пользовательского элемента управления, его можно разместить на панели с помощью следующих методов WinAPI:
[DllImport( "user32.dll" )]
public static extern bool ShowWindow( IntPtr hWnd, WindowShowStyle nCmdShow );
[DllImport( "user32.dll", SetLastError = true )]
public static extern IntPtr SetParent( IntPtr hWndChild, IntPtr hWndNewParent );
Пример:
System.Diagnostics.Process externalProcess = new System.Diagnostics.Process( )
{
StartInfo = new System.Diagnostics.ProcessStartInfo( appToHost )
};
externalProcess.Start( );
externalProcess.WaitForInputIdle( );
if ( !externalProcess.HasExited )
{
ShowWindow( externalProcess.MainWindowHandle, ShowWindowStyle.Maximize );
SetParent( externalProcess.MainWindowHandle, panel.Handle );
}
Этот фрагмент добавляет приложение, расположенное в appToHost
в качестве дочернего элемента управления, на панель panel
.