Office VSTO 插件中 windows 表单中的制表符停止不起作用

Tab stops in windows form in Office VSTO addin don't work

我正在为 Office 编写一个简单的 VSTO 加载项。当用户单击一个按钮时,会出现一个单独的表单,表单上有一些单行文本框、一些按钮和一些标签。这一切都在 VB.NET.

一切都按预期工作 - 除了我无法在表单上的控件之间切换。我已经设置了 TabIndex 和 TabStop 属性(实际上,将它们保留为默认值,看起来不错)。我还尝试以编程方式在表单的 Shown 处理程序中设置 TabIndex 和 TabStop - 但这没有任何区别。将运行时从 .NET 4.5 更改为 4.6 没有任何区别。

奇怪的是,如果我在 Windows 表单应用程序中使用完全相同的表单(复制并粘贴 .vb 文件),选项卡将停止工作。似乎这个 VSTO 项目(或者可能是所有 VSTO 项目)停止了 Tab 键工作。

我正在使用 Visual Studio 2017,VSTO 插件的主机应用程序是 MS Project 2016。

独立 WinForms 应用程序和 Office 加载项之间的区别在于主机应用程序(可以是 MDI 或 SDI 应用程序)。

很可能您需要为 Show 方法指定父 window 句柄。 method accepts an instance of the IWin32Window 接口代表将拥有此表单的顶级 window。