我想在文本字段/文本框元素上设置一个文本字段/文本框元素的文本,并使用MircoSoft UI Automation 框架,这意味着在 Automation Eplement
的 ControlType.Edit
或 ControlType.Document
的 < document 上设置一个文本字段/文本框元素。
i m 使用 < code> TextPatter 获取这些 < code> 自动元素之一的文字 < /code> :
TextPattern tp = (TextPattern)element.GetCurrentPattern(TextPattern.Pattern);
string text = tp.DocumentRange.GetText(-1).Trim();
但现在我想在 自动元素
中设置新文本。 在 < code> TextPater 类中找不到新的方法。 所以我尝试使用 < code> ValuePater 但我不确定这样做是否正确 :
ValuePattern value = element.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern;
value.SetValue(insertText);
是否有其他方法来设定文本值?
另一个问题是,当文本在 Edit
/ < Document
元素上被更改时,我怎样才能得到一个事件? 我试图使用 TextChangedEvent
元素,但是在修改文本时,我没有得到任何解雇:
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");
}