TextBox выдает неподдерживаемый шаблон в шаблоне значения

Кто-нибудь знает, как установить значение в TextBox после включения TextBox во время выполнения с использованием UI Automation и .Net?

Для получения дополнительной информации: изначально при загрузке приложения TextBox был отключен. После переключения флажка с помощью автоматизации текстовое поле стало активным. Но с автоматизацией это недоступно. Я пробовал так:

PropertyCondition parentProcCond = new PropertyCondition(AutomationElement.ProcessIdProperty, processes[0].Id);
Condition chkCondition = new AndCondition(
                            new PropertyCondition(AutomationElement.IsEnabledProperty, true),
                            new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.CheckBox),
                            new PropertyCondition(AutomationElement.NameProperty, chkName));
//Find Elements
var parentElement = AutomationElement.RootElement.FindFirst(TreeScope.Children, parentProcCond);

var chkUseMyAccountElement = parentElement.FindFirst(TreeScope.Descendants, chkCondition);
TogglePattern pattern = chkUseMyAccountElement.GetCurrentPattern(TogglePattern.Pattern) as TogglePattern;
ToggleState state = pattern.Current.ToggleState;
if (state == ToggleState.On)
{
    pattern.Toggle();
}

Condition txtDomainCondition = new AndCondition(
                           new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Text),
                           new PropertyCondition(AutomationElement.NameProperty, txtDomain)
                           );

var txtConditionElement = parentElement.FindFirst(TreeScope.Descendants, txtDomainCondition);
ValuePattern valuetxtDomain = txtConditionElement.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern;
valuetxtDomain.SetValue("US");

Он выдает неподдерживаемый шаблон в строке ValuePattern.


person Britto Raj    schedule 13.09.2016    source источник


Ответы (1)


Я нашел ответ.

Вместо Типа элемента управления как Текст, измененного как Тип элемента управления как Правка. Это работает.

 Condition txtDomainCondition = new AndCondition(
                       new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Edit),
                       new PropertyCondition(AutomationElement.NameProperty, txtDomain)
                       );
person Britto Raj    schedule 13.09.2016