.NET Automation ControlType.Document: как манипулировать текстом?
Как я могу установить текст в ControlType.Document
элемент, использующий System.Windows.Automation
?
ValuePattern недоступен для Document ControlType, а TextPattern не позволяет устанавливать новые значения.
Это не работает:
automationElement.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern)
.setValue(value);
1 ответ
Я нашел уродливый способ с этим методом:
private void InsertTextIntoAutomationElement(AutomationElement element, string value) {
object valuePattern = null;
if (!element.TryGetCurrentPattern(ValuePattern.Pattern, out valuePattern)) {
element.SetFocus();
Thread.Sleep(100);
SendKeys.SendWait("^{HOME}"); // Move to start of control
SendKeys.SendWait("^+{END}"); // Select everything
SendKeys.SendWait("{DEL}"); // Delete selection
SendKeys.SendWait(value);
} else{
element.SetFocus();
((ValuePattern)valuePattern).SetValue(value);
}
}