【发布时间】:2015-06-27 15:52:49
【问题描述】:
我想在 VB.NET 中使用 MessageBox.Show() 与 owner 参数如下:
MessageBox.Show(owner As IWin32Window,...)
据我了解,如果此代码采用 Windows 形式,您只需将“Me”(VB.NET)或“this”(C#)作为所有者参数传递。但是,我的代码是 Excel COM 加载项的一部分,并且所有者参数必须以某种方式绑定到特定的 Excel 窗口。
那么,如何获取 Excel 窗口对象并将其转换为可以传递给 VB.NET 中的 MessageBox.Show() 的 IWin32Window?如果我可以轻松地将其转换为 VB.NET,我将接受 C# 代码。
【问题讨论】:
-
好吧,你可以试试
MessageBox.Show(Control.FromHandle(excelWindow.Hwnd), "Text"),但老实说,I doubt it'll work。 -
您可以尝试创建一个接受 ctor 中的 excel 窗口的类(包装器)。实现 IWin32Window 并返回句柄。 msdn.microsoft.com/EN-US/library/office/dn292510.aspx
-
可能的副本是 C#。我需要 VB.NET。当然,转换对某些人来说是微不足道的,但对另一些人来说却不是。
-
谁能向我解释
owner参数的目的是什么?