问题标签 [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 回答
2082 浏览

c# - 当 DropDownStyle 为 DropDown 时,组合框提示横幅不斜体

ComboBox我们有一个 WinForms 控件,它是在没有选择或文本时支持“提示横幅”(又名水印)的扩展版本。我们的控制类似于使用 CB_SETCUEBANNER 的实现

但是,当我们将DropDownStyle控件设置为ComboBoxStyle.DropDown(即也允许自由文本输入)时,提示横幅会显示,而不是斜体(通常是这样显示的)。

有谁知道如何在ComboBoxStyle.DropDown模式下为组合框绘制斜体提示横幅???

0 投票
2 回答
1781 浏览

c# - 如何在 .NET Winform 中嵌入 win32 Delphi 表单

我们想从 .NET 打开一些 Delphi (win32) 表单并将 Delphi 表单嵌入到 .NET MDI 表单中。如果我们只是在我们的 Delphi DLL 中调用导出的方法,那么嵌入表单是没有问题的,但是我们通常会遇到快捷键和键盘事件的问题。我们认为这是因为不兼容的消息循环。然后,我们尝试在单独的 .NET 线程上的 Delphi DLL 中的导出过程中执行 Application.Run,​​它第一次工作,但当我们尝试多次打开表单时失败。有谁知道如何按照我们想要的方式进行互操作:在 .NET Winform 中嵌入一个 win32 Delphi 表单?

@All:首先,感谢您的回复我们找到了解决问题的方法:我们将 Delphi Application.Run 移动到启动窗口的导出过程中。

0 投票
2 回答
6305 浏览

c# - 切换到上次活动的应用程序,例如 Alt-Tab

好的,我找到了很多关于按名称查找窗口等的帖子。我没有找到的是如何找到窗口应用程序焦点并将其切换到最后一个活动窗口。我在下面显示的代码将为我提供任务管理器中处于活动状态的活动应用程序列表。

我不知道该怎么做是找出最后一个活动应用程序是哪个应用程序,然后切换到它。例如...

我打开了我的自定义 winform 应用程序。

我点击一个按钮

我的应用程序切换到最后一个活动窗口/应用程序。

这是我到目前为止的工作代码。(这是按钮上的操作,它希望应用程序有一个名为 textbox1 的文本框。您还需要使用 System.Diagnostics 添加;

0 投票
5 回答
1124 浏览

c# - 如果程序已最小化或在系统托盘中,如何检测按两次 ctrl 键

如果程序已最小化或在系统托盘中,如何检测按两次 ctrl 键

我正在尝试开发 ac# 程序,当按下控制键两次时,主窗体将显示给用户。我找到了热键组合的示例,但这不是带有组合的热键,例如控制+其他键。这就像谷歌桌面应用程序,当按两次控制键时显示搜索框。

0 投票
1 回答
1212 浏览

c# - 从 Excel 电子表格中读取数据

可能重复:
从 Excel 文件中读取数据

我在 C# 中读取 Excel 电子表格时遇到了一些问题。我有这段代码,我读取了从 A 到 X 的每个单元格。

我的问题是:我如何根据“数字”值读取 excel 中接下来的 4 *“数字”行?

例如:

F 的单元格值为 1,所以我想阅读(GHIJ)如果 F 的单元格值为 2,我想阅读(GHIJKLMN)

F 的单元格值 3 :

.

0 投票
2 回答
433 浏览

c# - 如何从窗体打开 WPF 窗口,反之亦然,并且仍然让 VS 调试器调试它们?

通常我会像这样打开一个新窗口:

但是当我尝试从窗体打开 WPF 窗口时,此方法不起作用,反之亦然,所以我这样做了:

这样做的问题是调试器不会调试新的窗体/窗口。

有没有办法在没有这个问题的情况下做到这一点?

0 投票
4 回答
132756 浏览

c# - 使用 Microsoft.Office.Interop.Excel SaveAs 错误导出到 .xlsx

我正在编写一个模块以使用将 DataTable 导出到 Excel,Microsoft.Office.Interop.Excel但在认真开始之前,我想让最基本的工作:打开文件,另存为,然后关闭。

我已经成功打开并保存了一个带有 .xls 扩展名的文件,但是使用 .xlsx 扩展名保存不起作用。它写入 .xlsx 文件,但是当我尝试打开它时,出现以下错误:

Excel 无法打开文件“SomeFile.xlsx”,因为文件格式无效。验证文件没有损坏并且文件扩展名与文件格式匹配。

我用来打开、保存和关闭文件的代码是:

我也尝试过使用文件格式Excel.XlFileFormat.xlExcel12来代替,Excel.XlFileFormat.xlWorkbookNormal但这甚至没有写,而是抛出了 COMException:

HRESULT 异常:0x800A03EC

任何解决此问题的帮助将不胜感激。

编辑:我现在也尝试过:

0 投票
1 回答
169 浏览

wpf - 可以从 WPF 使用非可视化 WinForms 控件吗?

是否可以从 WPF 中使用非可视化 WinForms 控件,只要它们以编程方式进行实例化?我正在比较仅可用于 WinForms 的两组组件,但我们希望“向前”创建 WPF 应用程序。

0 投票
1 回答
569 浏览

wpf - 从绑定到 ElementHost 的 ViewModel 更改主机 WinForm 属性

谁能建议允许我从 ElementHost 中的 WPF 元素更改主机 WinForm 的属性的方法?

棱镜堆栈

我有一个使用绑定到 ElementHost 的 Prism 的 MVVM 应用程序。我想更改 WinForm 标题、调整 WinForm 大小并从我的 ViewModel 中关闭 WinForm。

我了解从本文中描述的 WPF 复合控件接收数据,但我看不出这将如何在 ViewModel 中工作。

App 是 WinForm ChartWizardViewModel 是我想要更改 App 属性的 ViewModel。其他一切都是棱镜架构。壳牌,引导程序等。

0 投票
2 回答
360 浏览

c# - 仅在 DragDrop 上发生异常

我有一个 WinForms 应用程序,它使用了一个TaskDialog 库,该库利用 ComCtl32.dll 中的 Vista 样式对话框,对于较小的操作系统,它使用模拟的 win 表单......

但这不是问题......这个库工作正常,我们从来没有遇到过问题。到现在为止......事实上,如果我们在正常情况下启动一个对话框,那么它看起来很好。

但是,我在主窗体上添加了一个拖放处理程序,以捕获从其他来源(例如 Windows 资源管理器)删除的文件路径。如果该拖放处理程序是第一次显示对话框,那么我们会得到以下异常:

在 DLL“ComCtl32”中找不到名为“TaskDialogIndirect”的入口点。

这发生在第三方库调用:

如果已显示对话框,则处理程序将运行正常。

表单的 DragDrop 处理程序没有显示InvokeRequired,但我还是小心翼翼地通过引发对话框Form.Invoke

作为一个方面:我在 64 位 Windows 7 机器上编译(并运行)它,但带有“AnyCPU”架构标志。

TaskDialogIndirect关于为什么仅在第一次调用是通过 DragDrop 处理程序时才引发异常的任何想法/解决方案???