2008-11-06 25 views
8

Tôi đang viết một ứng dụng và tôi muốn có thể hiển thị một ứng dụng khác bên trong nó. (Hãy suy nghĩ như một hình thức cửa sổ với một hộp nhỏ, hoặc một tab đó là hiển thị một ứng dụng hoàn toàn riêng biệt.)Mở một ứng dụng bên trong một biểu mẫu - C# hoặc VB.NET

Đó có phải là một cái gì đó có thể được thực hiện? Nếu vậy, bất cứ ai có thể đưa ra một số hướng về cách đi về làm việc đó?

Tôi đang tìm kiếm thứ gì đó trong thế giới C# hoặc VB.NET.

CẢM ƠN!

Trả lời

10

Bạn cần một cửa sổ (tay cầm) hWnd từ một ứng dụng khác. Sau đó, bạn cần điều khiển vùng chứa hWnd trong ứng dụng của bạn (thuộc tính System.Windows.Forms.Control.Handle).

Sau đó, bạn cần sử dụng hàm Win32API SetParent và tất cả những gì bạn cần. Trên trang SetParent có ít mẫu, nên làm những gì bạn cần.

+0

Tất nhiên, điều này yêu cầu cửa sổ bạn muốn nhúng đã tồn tại- nếu không bạn không thể xử lý nó. Nhưng nó vẫn khá trơn tru: upvote. –

+0

Bạn luôn cần cửa sổ tồn tại, nếu bạn muốn nhúng nó vào vùng chứa của mình. Bạn có lần nào thêm cái gì đó "A" vào thứ gì đó "B" khi "A" không tồn tại :) không? Câu hỏi đặt ra là "làm cách nào tôi có thể tìm thấy cửa sổ mà tôi muốn". Bạn có thể sử dụng thuộc tính "Process.MainWindowHandle" hoặc chức năng "EnumWindows" Win32API. – TcKs

Các vấn đề liên quan