在文本字段/文本框上设置文本并使用自动化框架获取更改事件这意味着ControlType.Edit或ControlType.Document中的AutomationElement。目前我正在使用TextPattern从AutomationElements之一获取文本:TextPatterntp=(TextPattern)element.GetCurrentPattern(TextPattern.Pattern);字符串文本=tp.DocumentRange.GetText(-1).Trim();但是现在我想为AutomationElement中的文本设置一个新文本。我在TextPattern类中找不到此方法。所以我正在尝试使用ValuePattern但我不确定这是否是正确的方法:ValuePatternvalue=element.GetCurrentPattern(ValuePattern.Pattern)asValuePattern;value.SetValue(insertText);还有其他方法可以设置文本值吗?另一个问题是如何在Edit/Document元素上更改文本时获取事件?我尝试使用TextChangedEvent但当文本更改时我不触发任何事件:AutomationEventHandlerehTextChanged=newAutomationEventHandler(text_event);Automation.AddAutomationEventHandler(TextPattern.TextChangedEvent,元素,TreeScope.Element,ehTextChanged);privatevoidtext_event(objectArgsEvent){Console.WriteLine("Textchanged");你可以使用ValuePattern,这是它的方法。来自我自己的代码:ValuePatternetb=EditableTextBox.GetCurrentPattern(ValuePattern.Pattern)asValuePattern;etb.SetValue("测试");你可以注册一个事件:varmyEventHandler=newAutomationEventHandler(handler);Automation.AddAutomationEventHandler(SelectionItemPattern.ElementSelectedEvent,//在你的情况下你可能想使用另一种模式targetApp,TreeScope.Descendants,myEventHandler);和处理程序方法:privatevoidhandler(objectsrc,AutomationEventArgse){...}还有一个AutomationPropertyChangedEventHandler(UsingAutomation.AddAutomationPropertyChangedEventHandler(...))在这种情况下可能会有用。基于MSDN中的这个例子。以上就是C#学习教程:使用自动化框架设置textfield/textbox上的文本,获取change事件共享的所有内容。如果对大家有用,需要了解更多C#学习教程,希望大家多多关注——本文来自网络合集,不代表立场,如涉及侵权,请右击联系管理员删除。如需转载请注明出处:
