首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用自动化框架在textfield / textbox上设置文本并获取更改事件

使用自动化框架在textfield / textbox上设置文本并获取更改事件
EN

Stack Overflow用户
提问于 2012-05-23 12:43:24
回答 1查看 12.6K关注 0票数 12

我想用Mircosoft UI自动化框架在textfield / textbox元素上设置文本,这意味着来自ControlType.EditControlType.DocumentAutomationElement

目前,我正在使用TextPattern从其中一个AutomationElements获取文本

代码语言:javascript
复制
TextPattern tp = (TextPattern)element.GetCurrentPattern(TextPattern.Pattern);
string text = tp.DocumentRange.GetText(-1).Trim();

但是现在我想在AutomationElement中设置一个新的文本。我在TextPattern类中找不到这方面的方法。因此,我试图使用ValuePattern,但我不确定这是否是正确的方法:

代码语言:javascript
复制
ValuePattern value = element.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern;
value.SetValue(insertText);

还有其他方法来设置文本值吗?

另一个问题是,当在Edit / Document元素上更改文本时,我如何才能得到一个事件?我试图使用TextChangedEvent,但在更改文本时没有触发任何事件:

代码语言:javascript
复制
AutomationEventHandler ehTextChanged = new AutomationEventHandler(text_event);
Automation.AddAutomationEventHandler(TextPattern.TextChangedEvent, element, TreeScope.Element, ehTextChanged);

private void text_event(object sender, AutomationEventArgs e)
{
    Console.WriteLine("Text changed");
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-22 08:32:08

您可以使用ValuePatern,这是实现它的方法。根据我自己的代码:

代码语言:javascript
复制
ValuePattern etb = EditableTextBox.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern;
etb.SetValue("test");

您可以使用以下方法注册到Event

代码语言:javascript
复制
var myEventHandler= 
            new AutomationEventHandler(handler);

Automation.AddAutomationEventHandler(
    SelectionItemPattern.ElementSelectedEvent, // In your case you might want to use another pattern
    targetApp, 
    TreeScope.Descendants, 
    myEventHandler);

handler方法:

代码语言:javascript
复制
private void handler(object src, AutomationEventArgs e) {...}

还有一个AutomationPropertyChangedEventHandler (在本例中使用Automation.AddAutomationPropertyChangedEventHandler(...) )可能很有用。

基于此示例从MSDN。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10720162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档