【问题标题】:c# : VSTO -> MS Office Apps loosing focus?c# : VSTO -> MS Office Apps 失去焦点?
【发布时间】:2013-06-20 14:16:58
【问题描述】:

那么,发生了什么,我将注意力从 Excel 应用程序转移到 PowerPoint 应用程序?

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

我使用来自How do you pass the owner window to Show() method overload? 的修改解决方案来查找 IWin32Window 所有者,并且它可以工作。

但是,即使这样做,焦点也会回到父 PowerPoint 应用程序。

那么,发生了什么,我将注意力从 Excel 应用程序转移到 PowerPoint 应用程序?

【问题讨论】:

  • 你有什么偷取焦点的代码吗?当我尝试时它很专注,这不是您可以在代码中轻松实现的(ColorDialog 没有 Focus())

标签: c# vsto colordialog


【解决方案1】:

如果您从其他表单启动表单,则应将其设置为ColorDialog 的Owner:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    相关资源
    最近更新 更多