当前位置: 首页 > 面试题库 >

如何在C#winforms控件上嵌入Java控件?

狄卓君
2023-03-14
问题内容

我可以将Java控件(SWT,Swing等)放在C#控件上吗?

我知道Web控件是可能的,但我不喜欢这种方式。


问题答案:

我重新检查了一下,看来IKVM当前在其AFT组件中没有足够的支持。我认为,执行所需操作的唯一方法是在具有隐藏主窗口的单独进程中运行java控件,并以某种方式将该控件的句柄传递给C#应用程序。

原始答案:

我不确定是否可以“添加”它,但是可以尝试以下方法:

有必要通过IKVM将Java类转换为.Net程序集。

  1. 首先,您需要获取Java控件的句柄。如果您需要有关如何执行此操作的信息,可以查看此帖子。我在这一步失败了,因为在IKVM的库中没有找到Win32DrawingSurface和DrawingSurfaces,也许仅在Java端创建一些静态getHandle()方法就足够了。

  2. 获取父C#控件的句柄。这很简单,因为Control具有其Handle属性。

  3. 获得两个句柄后,您可以将其中一个设置为父级。为此,您需要从WINAPI调用SetParent函数

[DllImport(“ user32.dll”)]私有静态外部IntPtr SetParent(IntPtr hWndChild,IntPtr
hWndNewParent);



 类似资料:
  • 问题内容: 有谁知道是否有一种方法来获取具有ErrorProvider图标处于活动状态的控件的列表。即。验证失败的任何控件。我试图避免循环窗体中的所有控件。 我想显示某种消息,指示表单上有多少错误。由于我的表单包含选项卡,因此我试图使用户知道不活动的选项卡上可能存在错误,因此他们需要检查所有选项卡。 谢谢 巴里 问题答案: 这属于“你怎么 不 知道” 类别。是您的代码正在调用ErrorProvid

  • 我是C#新手,我确实知道如何动态添加控件,但我不知道如何将那个控件设置为。请注意,这里的是。 这可以通过静态地完成,但如何从方法中完成这一操作,以便以后可以声明? 请注意,类似于;

  • 问题内容: 我已经试过了: scriptEl.InnerHtml和scriptEl.InnerText都给出错误: 有没有一种简单的方法可以将脚本注入dom? 问题答案: 由于某种原因,Richard的解决方案对我而言不起作用(insertAdjacentText失败,并带有异常)。但是,这似乎可行:

  • 问题内容: 请告诉我如何将Java模块/源代码嵌入C#应用程序中?例如,我有一些用Java编写的逻辑,该逻辑使用了一些第三方库,这些库只能在Java平台上找到。而且我有用C#编写的主要主机逻辑。如果我能够将来自Java的回调注册到C#中,那将非常酷。 非常感谢你!!! 问题答案: 您可以尝试IKVM吗? IKVM.NET对于几种不同的软件开发方案很有用。这里是一些可能性的示例。 嵌入式JVM 在.

  • 本文向大家介绍winforms 处理控件和表单的HelpRequested事件,包括了winforms 处理控件和表单的HelpRequested事件的使用技巧和注意事项,需要的朋友参考一下 示例 当用户按下F1控件或单击窗体(?)的“帮助”按钮,然后单击控件时,HelpRequested将引发该事件。 当用户请求控件或表单的帮助时,您可以处理此事件以提供自定义操作。 所述HelpRequeste

  • 我的总体目标是能够使用TAB键在3个div之间导航,每个div都有#sectionA、#sectionB和#sectionC的CSS id。在每个div中,我有一个无序列表,我想使用左右箭头键来浏览列表。 我的超文本标记语言如下: 到目前为止,我能够得到以下jquery代码,但一旦我添加了第二个$(文档). keydown(函数()代码,就无法工作。