问题标签 [winforms-interop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2347 浏览

c# - 我可以将数据从 Winforms 传递到 WPF 控件吗?

我有一个 winforms 应用程序,但我想在应用程序中引入一个 WPF 用户控件,作为进一步 WPF 实施的试用者。

这个控件需要从它的主机接收一条信息,一个字符串。如何将其从 Winforms 应用程序传递到托管控件?

或者,真的,我可以吗?

0 投票
2 回答
1412 浏览

c# - 无法将活动从 WPF ListBox 拖到 WorkflowView

我正在尝试在 WPF 应用程序中托管工作流设计器。WorkflowView 控件托管在 WindowsFormsHost 控件下。我设法将工作流加载到设计器上,该设计器成功链接到 PropertyGrid,也托管在另一个 WindowsFormsHost 中。

大多数重新托管代码与http://msdn.microsoft.com/en-us/library/aa480213.aspx中的相同。

我使用绑定到 ToolboxItems 列表的 ListBox WPF 控件创建了一个自定义工具箱。

在 ListBox_PreviewMouseLeftButtonDown 处理程序中:

使用该设置,我无法将自定义工具箱中的任何项目拖到设计器上。光标在设计器的任何位置始终显示为“否”。

我已经尝试在网上找到有关此的任何信息半天了,我真的希望有人可以在这里帮助我。

非常感谢任何反馈。谢谢!

卡洛斯

0 投票
1 回答
640 浏览

mfc - 在 Vista 64bit 上的 winforms 窗口中的 MFC Active-X 控件;“类未注册异常”

为了尝试确认另一个 SO 张贴者对在 winforms 窗口上托管的 ActiveX 控件中的密钥处理的建议,我尝试制作一个简单的 MFC ActiveX 控件,然后将其放置在 Windows 窗体上。在设计时,控件没有出现任何问题。

运行应用程序时出现可怕的“类未注册异常”。对话框出现。

这两个项目都在 VS 2008 中。Winforms 应用程序是一个 .Net 3.5 框架应用程序。

我已经尝试从资源管理器(在两种情况下都提升权限)中运行调试器,但似乎没有任何效果。我什至确保我使用 64 位和 32 位 regsvr32 可执行文件手动注册了 OCX。

这让我感到困惑,因为我不希望它不会运行。我在工作中做过类似的实验(32 位 Windows XP 机器),没有遇到任何问题。

我的VS配置如下:

  • 微软视觉工作室 2008

  • 版本 9.0.30729.1 SP

  • 微软 .NET 框架

  • 版本 3.5 SP1

    最令人困惑的一点是 ActiveX 控件似乎出现在设计时。任何答案、建议或想法将不胜感激。

0 投票
1 回答
482 浏览

winforms - 在本机窗口中托管 Windows 窗体控件,window class="Static"

我需要向本机应用程序 (Visual Studio) 提供一个 Windows 窗体控件。
所以我创建了一个控件并提供了它的句柄。

然后,当我使用 Spy++ 检查本机窗口时,我看到我的控件包含在附加的“控件”中,窗口类 =“静态”,标题为“这是静态的!”。我有几个问题:

  1. 由托管窗口发送到我的控件的调整大小事件必须重新发送到“静态”,因此它也会调整大小(否则我的控件会部分隐藏在静态的大小内)。
  2. 静态没有WS_EX_CONTROLPARENT,导致出现KB149501(简而言之,整个应用程序挂在失去焦点上)。
  3. 如果我申请WS_EX_CONTROLPARENT,静态列表框内的列表框停止重绘。

我想我做错了什么,但我不确定是什么。Google 没有帮助,因为 static 也是 C# 关键字,所以它经常出现在 WinForms 结果中。

0 投票
1 回答
625 浏览

wpf - 如何从 .NET 2.0 程序集挂钩 winforms 或 WPF 中的热键?

我的程序集以 .NET 2.0 为目标,与广泛的应用程序兼容。当与桌面应用程序(winforms 或 WPF)一起使用时,我想挂钩某些热键并弹出无模式对话框窗口。棘手的一点是找到一个可以在与 WPF 兼容的 .NET 2.0 下实现的解决方案。

对于 winforms,我可以使用RegisterHotKey或实现 IMessageFilter 并在PreFilterMessage方法中挂钩WM_KEYDOWN,但它们不适用于 WPF。

对于 WPF,InputBinding类非常好,但这在 .NET 2.0 中不可用。

一个理想的解决方案是:

  • 构建面向 .NET 的程序集

  • WPF 或 Winforms 的 Hook 击键

  • 提供应用程序范围,而不是系统范围的范围

0 投票
1 回答
360 浏览

c# - 如何从 wpf 互操作访问 winforms 数据?

我的解决方案中有 2 个项目。

我正在使用 WPF Interoperability 中的 ElementHost 来托管 WpfControlLibrary1 中的 UserControl1。

现在,


我希望“this msgbox”显示 label1 的内容。

我该怎么做呢?

0 投票
1 回答
629 浏览

c# - 从 WPF 嵌入式 Winforms 控件调用 WPF 命令

我有一个WinDataGrid从 Infragistics 扩展的类UltraGrid。我已经WinDataGrid使用WindowsFormHost. 选择行后,我需要DelegateCommand<IList>使用我的所选行集合调用预定义。

我该怎么办?

作为背景,我有一个同时使用 WPF DataGrid 和 Infragistics WinGrid 的 WPF 应用程序。WPF 网格已经大部分连接起来了,我想尽可能多地利用现有的命令等来连接我的 Winforms 网格。我意识到可能需要一些映射,但我应该能够映射大多数东西?

0 投票
3 回答
11012 浏览

c# - 是否可以通过容器/包装器在 WPF 表单中托管 WinForm 表单?

有没有办法在 WPF 表单中的某种容器或包装器类型控件中托管/显示完整的 WinForms 表单(不仅仅是单个控件)?我正在寻找与 php 中的虚拟包含或 html 中的 iframe 类似的概念。可能通过将其编译成 OCX 或 DLL。

0 投票
1 回答
1069 浏览

c# - 在 C# ActiveX 控件中处理父控件事件

我用 C# 编写了一个 ActiveX 用户控件。该 ActiveX 控件托管在使用 Delphi 编写的 IE 中运行的遗留应用程序中。一切正常,我唯一的问题是我需要订阅托管我的控件的事件(例如 - 调整大小事件)。

目前我无法做到这一点,当我调整 IE 窗口的大小时,我的控件没有收到SizeChanged事件。我试图订阅父控件的事件,但父控件被列为空。(我想这是德尔福的问题。)

我想知道是否有办法让它工作(也许我必须实现一些接口?)。

这是我的控件的代码示例:

0 投票
2 回答
2786 浏览

c# - 覆盖标题栏按钮的工具提示文本(关闭、最大化、最小化、帮助)

我一直在尝试更改显示在表单主标题栏上的按钮的工具提示文本,但没有运气。

简而言之,我们利用 Windows 窗体的“帮助”按钮有其他用途。这工作正常。问题是当将鼠标悬停在该按钮上时,会出现“帮助”工具提示,这对应用程序没有任何意义。

理想情况下,有一些方法可以为我的应用程序更改该工具提示的文本;但是,在这一点上,只要找到一种完全禁用工具提示的方法,我就会感到满意。

我知道您可以通过修改 regedit 中的“UserPreferencesMask”键来禁用整个操作系统的工具提示,但我真的很想有一种方法让它只影响我的应用程序。

同样,理想情况下,有一些方法可以使用托管代码来做到这一点,但我不反对链接到 Windows API 或类似的东西。

感谢您提供解决此问题的任何建议!