Csharp/C#教程:如何使用UIAutomation带来MDI子窗口的设置焦点分享


如何使用UIAutomation带来MDI子窗口的设置焦点

我们有一个旧的遗留应用程序,我们需要自动化。 它使用MDI Windows。

我们正在使用UIAutomation ,我可以成功地为每个MDI子窗口获取相应的AutomationElement。 我不能做的就是把这个元素放在焦点上。

这是我尝试的一些示例代码,但失败了:

var desktop = AutomationElement.RootElement; var dolphin = desktop.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "Dolphin for Windows", PropertyConditionFlags.IgnoreCase)); dolphin.SetFocus(); var workspace = dolphin.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "Workspace", PropertyConditionFlags.None)); var childWindow = workspace.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "Sharp ")); childWindow.SetFocus(); 

此代码中的最后一行失败,出现System.InvalidOperationException

试验,我尝试在childWindow上找到一个控件,并在其上调用SetFocus。 它DID正确地将焦点设置在右侧控件上,但它没有将MDI窗口置于前台。

有任何想法吗?

在设置焦点之前,您是否尝试过“BringToFront”? 我可以想象顶级控件(mdi-parent)不允许专注于孩子,或者当孩子(mdi-child)不可见时不能这样做。

上述就是C#学习教程:如何使用UIAutomation带来MDI子窗口的设置焦点分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/955184.html

(0)
上一篇 2021年11月21日
下一篇 2021年11月21日

精彩推荐