我想在 excel 应用程序中显示一个 WinForm。但是这个窗口应该是透明的。为此,我执行以下操作。
private void InitializeComponent()
{
// other form/ control init code
this.BackColor = System.Drawing.Color.White;
this.TransparencyKey = System.Drawing.Color.White;
// other form/ control init code
}
现在,我想将此表单作为 excel 应用程序的子项,为此我使用以下代码。
protected override void OnLoad(EventArgs e)
{
// PINVOKE CALL
User32.SetParent(FORMHANDLE, EXCELAPPHANDLE);
}
设置后表单消失,因为如果我取消注释上面的代码,我可以看到具有透明背景的表单。