我有一个服务页面(实际上是一个 Win32 选项卡控制面板),我想在其中嵌入一个 C# .NET 用户控件。服务管理器应用是 Win32。作为测试,我想我会尝试将用户控件的实例父级到 Windows 窗体,不是通过将其添加到父窗体的控件集合中,而是使用 Win32 的 SetParent。但是,当我执行此操作时,我的用户控件不会显示在窗体上。
跟:
[DllImport("user32.dll")]
public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
我写:
if (My_User_Control_Instance == null)
{
My_User_Control_Instance = new My_New_User_Control();
}
My_User_Control_Instance .Bounds = position;
var result = SetParent(My_User_Control_Instance.Handle, hWnd);
其中 hWnd 是从主要形式获取的 IntPtr。处理。
着眼于这个小程序与 Win32 应用程序的最终集成,我最好的方法是什么?还是整个计划被误解了。
Note:此问题总结整理于: [Parent a user control inside a Windows Form (with one eye on Win32 window!)](https://learn.microsoft.com/en-us/answers/questions/246282/parent-a-user-control-inside-a-windows-form-(with)