如何确保单击按钮?

时间:2015-08-26 08:42:23

标签: c# microsoft-ui-automation

有没有一种简单的方法来检查我的OK按钮是否被按下了?大部分时间它都运行得很好,但是百分之一失败了:

AutomationElement rl = SomeMethod();
if (rl.Current.Name == "OK" && rl.Current.ControlType == ControlType.Button)
{
    InvokePattern click = (InvokePattern)rl.GetCurrentPattern(InvokePattern.Pattern);
    click.Invoke();
}

我想知道为什么。

1 个答案:

答案 0 :(得分:1)

要在按下按钮后收到通知,您可以通过

注册AutomationEventHandler
Automation.AddAutomationEventHandler(InvokePattern.InvokedEvent, AutomationElement yourAE,TreeScope.Element, new AutomationEventHandler(OnStartInvoke));

private static void OnStartInvoke(object src, AutomationEventArgs e)
{
    //logic
}

您可以使用它来验证按钮是否也被点击过。调用调度程序中的按钮(具有一定的超时),直到您输入OnStartInvoke。