definir texto no textfield / textbox com a estrutura de automação e obter o evento de mudança

Eu quero definir um texto em um elemento textfield / textbox com o MircosoftAutomação da interface do usuário quadro, isso significa em umAutomationElement deControlType.Edit ouControlType.Document.

No momento eu estou usando oTextPattern para obter o texto de um dessesAutomationElements:

TextPattern tp = (TextPattern)element.GetCurrentPattern(TextPattern.Pattern);
string text = tp.DocumentRange.GetText(-1).Trim();

Mas agora eu quero definir um novo texto noAutomationElement. Eu não consigo encontrar um método para isso noTextPattern classe. Então estou tentando usar oValuePattern mas não tenho certeza se esse é o jeito certo de fazer isso:

ValuePattern value = element.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern;
value.SetValue(insertText);

Existe outra maneira de definir o valor do texto?

Outra questão é como posso obter um evento quando o texto foi alterado em umEdit / Document elemento? Eu tentei usar oTextChangedEvent mas eu não recebo nenhum evento quando altero o texto:

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");
}

questionAnswers(1)

yourAnswerToTheQuestion