Partilhar via


Acrescentar Conteúdo a um Text Box Utilizando Automação de IU

Este tópico contém código de exemplo que demonstra como usar Para inserir texto em um caixa de texto Simples-Linha.Um método alternativo é fornecido para controles de várias linhas e rich Texto onde não é aplicável.Para efeito de comparação, o exemplo também demonstra como utilizar métodos Win32 para alcançar os mesmos resultados.

Exemplo

O exemplo a seguir percorre uma seqüência de controles de texto de uma aplicação alvo.Cada controle de texto é testado para verificar se um ValuePattern Objeto pode ser obtido-lo usando o TryGetCurrentPattern(AutomationPattern, Objeto%) Método.Se o controle de texto oferecer suporte ValuePatterno [M:System.Windows.Automation.ValorPadrão.SetValor(System.Cadeia de Caracteres)] Método é usado para inserir uma seqüência de caracteres definida pelo usuário em o controle de texto.Caso contrário, o SendTeclasSendWait(String) Método é usado.






  SetValueWithUIAutomation(string s)
{
     (AutomationElement control  textControls)
    {
        InsertTextUsingUIAutomation(control, s);
    }
}








  InsertTextUsingUIAutomation(AutomationElement element, 
                                    string value)
{
    
    {
        
         (value == )
              ArgumentNullException(
                );

         (element == )
              ArgumentNullException(
                );

        
        
        
        
        
        
        
         (!element.Current.IsEnabled)
        {
              InvalidOperationException(
                
                + element.Current.AutomationId.ToString() 
                + );
        }

        
        
         (!element.Current.IsKeyboardFocusable)
        {
              InvalidOperationException(
                
                + element.Current.AutomationId.ToString()
                + );
        }


        
        
        object valuePattern = ;

        
        
        
        
        
        
        
        
        
        
         (!element.TryGetCurrentPattern(
            ValuePattern.Pattern,  valuePattern))
        {
            feedbackText.Append()
                .Append(element.Current.AutomationId.ToString())
                .Append()
                .AppendLine();

            
            element.SetFocus(); 

            
            Thread.Sleep(100);

            
            SendKeys.SendWait();   
            SendKeys.SendWait();   
            SendKeys.SendWait();     
            SendKeys.SendWait(value);
        }
        
        
        
        {
            feedbackText.Append()
                .Append(element.Current.AutomationId.ToString())
                .Append(())
                .AppendLine();

            
            element.SetFocus();

            ((ValuePattern)valuePattern).SetValue(value);
        }
    }
     (ArgumentNullException exc)
    {
        feedbackText.Append(exc.Message);
    }
     (InvalidOperationException exc)
    {
        feedbackText.Append(exc.Message);
    }
    
    {
        Feedback(feedbackText.ToString());
    }
}





  SetValueWithUIAutomation( s  )
     control  AutomationElement
      control  textControls
        InsertTextWithUIAutomation(control, s)
     control

 







  InsertTextWithUIAutomation( _
 element  AutomationElement,  value  )
    

         value   
              ArgumentNullException( _
            )
         

         element   
              ArgumentNullException( _
            )
         







         Not element.Current.IsEnabled 
              InvalidOperationException( _
             + _
            element.Current.AutomationId.ToString() + _
             + vbLf + vbLf)
         


         Not element.Current.IsKeyboardFocusable 
              InvalidOperationException( _
             + _
            element.Current.AutomationId.ToString() + _
             + vbLf + vbLf)
         


         targetValuePattern  Object = 










         Not element.TryGetCurrentPattern(ValuePattern.Pattern, targetValuePattern) 
            feedbackText.Append() _
            .Append(element.Current.AutomationId.ToString()) _
            .Append(). _
            AppendLine().AppendLine()

            element.SetFocus()

            Thread.Sleep(100)

            SendKeys.SendWait() ' Move to start of control
            SendKeys.SendWait() '  everything
            SendKeys.SendWait() ' Delete selection
            SendKeys.SendWait(value)
        


            feedbackText.Append() _
            .Append(element.Current.AutomationId.ToString()) _
            .Append() _
            .AppendLine().AppendLine()

            element.SetFocus()
             valueControlPattern  ValuePattern = _
            DirectCast(targetValuePattern, ValuePattern)
            valueControlPattern.SetValue(value)
         
     exc  ArgumentNullException
        feedbackText.Append(exc.Message)
     exc  InvalidOperationException
        feedbackText.Append(exc.Message)
    
        Feedback(feedbackText.ToString())
     

 

Consulte também

Tarefas

Exemplo de texto Inserir ValuePattern