我重新检查了一下,看来IKVM当前在其AFT组件中没有足够的支持。我认为,执行所需操作的唯一方法是在具有隐藏主窗口的单独进程中运行java控件,并以某种方式将该控件的句柄传递给C#应用程序。
原始答案:
我不确定是否可以“添加”它,但是可以尝试以下方法:
有必要通过IKVM将Java类转换为.Net程序集。
首先,您需要获取Java控件的句柄。如果您需要有关如何执行此操作的信息,可以查看此帖子。我在这一步失败了,因为在IKVM的库中没有找到Win32DrawingSurface和DrawingSurfaces,也许仅在Java端创建一些静态getHandle()方法就足够了。
获取父C#控件的句柄。这很简单,因为Control具有其Handle属性。
获得两个句柄后,您可以将其中一个设置为父级。为此,您需要从WINAPI调用SetParent函数。
[Dllimport(“ user32.dll”)]私有静态外部IntPtr SetParent(IntPtr hWndChild,IntPtr
hWndNewParent);



