获取VSTO Addin中的IWin32Window父句柄到Center saveFileDialog

本文关键字:句柄 Center saveFileDialog IWin32Window VSTO Addin 中的 获取 | 更新日期: 2023-09-27 17:52:34

我有Outlook 2013 VSTO插件。我想把saveFileDialog放在父元素上。我读到你可以重载ShowDialog()方法与IWin32Window句柄。我找不到任何例子来展示如何获得这个IWin32Window句柄。我怎样才能得到Outlook的IWin32Window句柄,这样我就可以把它传递给ShowDialog()并把saveFileDialog()放在父窗口的中心。

从我读到的只是传递句柄是不够的。似乎还有额外的步骤,但我怎么也找不到。

如果有人能提供一个例子,如何捕获句柄,然后在父窗口的中心为saveFileDialog(),这将是一个巨大的帮助。

谢谢

获取VSTO Addin中的IWin32Window父句柄到Center saveFileDialog

您需要创建IWin32Window接口的实例,将其传递给Form类的Show或ShowDialog方法。例如,您可以使用以下代码:

 public class WindowHandle : System.Windows.Forms.IWin32Window
 {
      public WindowHandle(IntPtr handle)
      {
          _hwnd = handle;
      }
      public IntPtr Handle
      {
          get { return _hwnd; }
      }
      private IntPtr _hwnd;
   }

要获得窗口句柄,您可以将资源管理器或检查器类的实例转换为IOleWindow接口。GetWindow方法允许检索窗口的句柄。