c#:VSTO->;MS Office应用程序失去焦点?

c#:VSTO->;MS Office应用程序失去焦点?,c#,vsto,colordialog,C#,Vsto,Colordialog,那么,发生了什么,我失去了从Excel应用程序到PowerPoint应用程序的关注点 更新: 你的答案是正确的(+1分),但这是我的错,没有解释完整的问题(我认为它很简单)。 因此,问题陈述扩展为:从MS PowerPoint,我打开MS Excel,从那里我打开ColorDialog。因此,问题在于获取调用Excel应用程序的iwin32窗口所有者(或其句柄) 我使用了来自的一个修改过的解决方案来查找iwin32窗口的所有者,它可以正常工作 然而,即使这样做,焦点还是回到了父PowerPoin

那么,发生了什么,我失去了从Excel应用程序到PowerPoint应用程序的关注点

更新: 你的答案是正确的(+1分),但这是我的错,没有解释完整的问题(我认为它很简单)。 因此,问题陈述扩展为:从MS PowerPoint,我打开MS Excel,从那里我打开ColorDialog。因此,问题在于获取调用Excel应用程序的iwin32窗口所有者(或其句柄)

我使用了来自的一个修改过的解决方案来查找iwin32窗口的所有者,它可以正常工作

然而,即使这样做,焦点还是回到了父PowerPoint应用程序


那么,发生了什么事,我从Excel应用程序失去了对PowerPoint应用程序的关注?

如果您是从其他表单启动表单,您应该将其设置为
颜色对话框的
所有者

if (dlg.ShowDialog(this) == DialogResult.OK)  //"this" being the owner form

你有没有重点偷代码?当我尝试它时,它是集中的,这不是你可以在代码中轻松实现的(
ColorDialog
没有
Focus()