问题标签 [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 投票
4 回答
5879 浏览

wpf - 在 WinForms MDI 应用程序中托管 WPF 用户控件时如何避免视觉伪影?

在 WinForms MDI 应用程序中托管 WPF 用户控件时,当您有多个相互重叠的表单时会出现绘图问题,从而导致非常明显的视觉伪影。在将一个子窗体拖到另一个也承载 WPF 内容的子窗体上之后,或者通过在拖动子窗体时允许主 MDI 父窗体剪裁子窗体的边缘后,这些工件大部分可见。子窗体的拖放完成后,工件通常会保留下来,但我发现将焦点设置到不同的应用程序窗口,然后重新聚焦到我的应用程序窗口,它被重绘并且一切都很好,直到孩子表格再次移动。请参阅下图,它演示了该问题。

描述的工件的屏幕截图

微软的人坚持认为 WinForms MDI 已经是 MDI 的充分解决方案,不需要在 WPF 中重新发明,尽管我发现很难相信他们尝试以这种方式创建 WPF 应用程序,因为存在明显的缺点。

更新:我遗漏的一些额外注意事项是,如果我在不设置 MdiParent 的情况下创建这些表单,它们将被创建为常规表单,并且不会发生此问题。这个问题似乎是 WinForms MDI 方案所独有的。此外,我目前在 Windows 7 Enterprise 上运行,我知道 Windows XP 上的结果可能完全不同,但我无法对此进行测试。

更新:我发现了一些关于这个问题的其他相关资源,我认为我应该分享。

0 投票
1 回答
962 浏览

c# - 如何在 Visual Studio 2005 或 C# Express 2008 中加载 axspreadsheet

我安装了 Office 2007,并检查了 .NET 可编程性。从 VS2005/VC#2008 Toolbox 我尝试添加一个新项目,axSpreadsheet 控件,不幸的是我无法从 .NET Framework / COM 参考中找到它。

任何想法如何解决这个问题?我的主要目的是将xls文件加载到winform。

0 投票
1 回答
316 浏览

c# - WinAPI 魔法和 MONO 运行时

我正在尝试获得 .NET 应用程序的相同结果(有关详细信息,请参阅链接隐藏 TabControl 按钮以管理堆叠的面板控件),但使用 MONO 运行时而不是 MS .NET 运行时。

实际上,当使用 MONO 运行时执行自定义控件时,不会将底层消息发送到控件,从而导致显示标签页...

是否有与链接解决方案一样优雅的便携式解决方案?如果不可能,有哪些可能的解决方法(除了在运行时删除/添加选项卡)?

0 投票
1 回答
536 浏览

wpf - WPF WindowsFormsHost 中的 WinForms 控件如何远程控制?

比如说,我有一个 WPF 程序,它的某些窗口上的“WindowsFormsHost”中有一个 Windows 窗体控件。

我通过远程桌面使用该程序。

这个控件的图形将如何遥控?通过 GDI 指令,就好像它是 WinForms 应用程序或像 WPF 这样的普通位图?

0 投票
1 回答
821 浏览

wpf - 托管 WPF UserControls 时如何在 WinForms MDI 应用程序中获取默认的 Ctrl+Tab 功能

我有一个基于 WinForms 的应用程序,其中包含传统的 MDI 实现,除了我通过 ElementHost 控件托管基于 WPF 的 UserControls 作为我每个 MDI 子项的主要内容。这是微软推荐的使用 WPF 实现 MDI 的解决方案,尽管不幸的是有各种副作用。其中之一是我的用于在每个 MDI 子项之间切换选项卡的 Ctrl+Tab 功能消失了,因为选项卡键似乎被 WPF 控件吞噬了。

是否有一个简单的解决方案可以让 Ctrl+tab 键序列到达我的 WinForms MDI 父级,以便我可以获得内置的选项卡切换功能?

0 投票
1 回答
1750 浏览

c# - 在 WPF 窗口中托管的 Active Reports winforms 查看器控件

Active Reports 6当前没有可用的 WPF 查看器。我试图使用主机控件在互操作主机中显示查看器,但我运气不佳。有没有其他人成功地尝试过这个?此时,我什至无法将包装查看器控件作为自定义控件添加到项目工具箱中。我希望避免重新创建轮子。

0 投票
1 回答
976 浏览

wpf - 在 WPF 和 WinForms 控件中处理相同快捷方式的最佳方法是什么?

我有一个 WPF 应用程序,其主窗口上有以下 KeyBinding:

这使得命令对快捷方式的响应很好。但是,在我嵌入了 WinForms 文本框或富文本框的所有地方,我都无法使用这些快捷方式。如果我删除上述绑定,WinForms 快捷方式工作正常。

如何在 WinForms 和 WPF 中支持这些快捷方式?我更喜欢通用方法,因为此问题可能会影响具有相同键绑定的许多其他命令。

0 投票
2 回答
2266 浏览

winforms - 互操作表单工具包 DLL 和“类不支持自动化或不支持预期接口”错误

我有一个 .NET WinForms 应用程序,我已使用 Interop Forms Toolkit 2.1 将其转换为 COM dll。该应用程序的安装项目将我的 tlb 和 Microsoft.InteropFormTools.tlb 文件设置为注册为 vsdrpCOM。该项目的先决条件是确保安装了 Windows Installer 3.1、.NET Framework 3.5 SP1 和 Microsoft Interop Forms Redistributable Package 2.0a。

当我在安装了 Visual Studio 2010 和 Visual Studio 6 的 Windows XP 机器上本地运行它时,它工作正常。但是,在这台 Windows XP 机器上,我收到一条错误消息:“类不支持自动化或不支持预期的接口。”

有任何想法吗?

0 投票
1 回答
2861 浏览

wpf - 如何将 WPF 窗口添加到 WinForms 应用程序

我正在创建一个 HUD 窗口,用于在我的 WinForms 应用程序中检查 biz 实体。

我想要一个完全不同风格的窗口(最小化内容区域并只显示 TitleBar,没有系统按钮等),所以我为此创建了一个 WPF 应用程序。

问题是我希望这个窗口在我的 WinForms 应用程序中“存在”。我不能只将 WPF 添加为 OwnedForm 或将主窗体设置为 WPF 窗口的所有者。

那么,如何才能做到这一点呢?

编辑:感谢 pst 我找到了答案。这是片段:

0 投票
1 回答
969 浏览

c# - 从 DataGridViewTextBoxCell 获取 Handle IntPtr?

我有一个 DataGridView,其中有一列需要水印文本的文本框单元格。我还有一个静态类,它使用 DLLImport 使用 SendMessage 将水印添加到 TextBox,并将 IntPtr hWnd 作为参数之一,如下所示:

问题是,虽然 TextBox 继承了 Control.Handle 属性,但 DataGridViewTextBoxCell 没有,所以我无法获得该 IntPtr 参数。据我了解,单元格使用 TextBox 控件来编辑值,所以不应该有某种方法可以到达该句柄吗?

我正在使用 .NET 2.0 和 C#