Artigo: 873198 - Última revisão: sexta-feira, 18 de Maio de 2007 - Revisão: 2.6

O evento TextChanged de um controlo de caixa de texto não pode lançar se a funcionalidade Conclusão automática está activada no Internet Explorer

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

Quando activar a funcionalidade Conclusão automática de formulários no Microsoft Internet Explorer e, em seguida, seleccione o texto a partir de pendente a conclusão automática lista de um controlo de caixa de texto numa aplicação Web, o evento TextChanged do controlo de caixa de texto não é despoletado mesmo que o texto na caixa de texto controlar alterações.

Causa

Este comportamento ocorre porque o Internet Explorer não é possível lançar o evento TextChanged de um controlo de caixa de texto quando selecciona texto da lista pendente utilizando a funcionalidade Conclusão automática.

Como contornar

Para contornar este comportamento, desactive a ' Conclusão automática ' funcionalidade do formulário Web. Para o fazer, siga estes passos:
  1. No Solution Explorer, clique com o botão direito do rato em WebForm1.aspx e, em seguida, clique em View Designer .
  2. Mude para a vista HTML de WebForm1.aspx.
  3. Localize o seguinte código:
    <form id="Form1" method="post" runat="server">
  4. Substitua o código que localizou no passo 3 com o seguinte código:
    <form id="Form1" method="post" runat="server" autocomplete="off">

Ponto Da Situação

Este comportamento ocorre por predefinição.

Mais Informação

Passos para reproduzir o comportamento

Activar a funcionalidade Conclusão automática para formulários

  1. Inicie o Internet Explorer.
  2. No menu Ferramentas , clique em Internet opções . A caixa de diálogo Opções da Internet é apresentada.
  3. No separador conteúdo , clique em conclusão automática em informações pessoais . A caixa de diálogo Definições de conclusão automática é apresentada.
  4. Em Utilizar a conclusão automática para , clique para seleccionar a caixa de verificação ' formulários e, em seguida, clique em OK .
  5. Na caixa de diálogo Opções da Internet , clique em OK .

Criar uma aplicação Web que contém um controlo de caixa de texto

  1. Inicie o Microsoft Visual Studio NET..
  2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto . A caixa de diálogo novo projecto é apresentada.
  3. Clique em Visual C# Projects em Project Types , clique em ASP.NET Web Application em Templates , escreva http://localhost/MyTestApp na caixa localização e, em seguida, clique em OK .
  4. No Solution Explorer, clique com o botão direito do rato em WebForm1.aspx e, em seguida, clique em View Designer .
  5. No menu Ver , clique em caixa de ferramentas .
  6. Adicione um controlo de caixa de texto ao formulário Web. Por predefinição, é criado um controlo de caixa de texto denominado Caixatexto1.
  7. Na janela Propriedades do controlo Caixadetexto1 caixa de texto , defina a propriedade AutoPostBack para Verdadeiro .
  8. Na janela Propriedades do controlo de caixa de texto Caixadetexto1 , clique em eventos e, em seguida, faça duplo clique em TextChanged . O procedimento TextBox1_TextChanged é adicionado na Vista código do ficheiro WebForm1.aspx.
  9. Insira um ponto de interrupção no procedimento TextBox1_TextChanged .
  10. No menu ficheiro , clique em Guardar tudo para guardar todos os ficheiros.

Criar e, em seguida, depurar a aplicação da Web

  1. No menu criar , clique em criar soluções .
  2. No menu Debug , clique em Iniciar . O WebForm1 - Microsoft Internet Explorer é apresentada a página Web.
  3. Na caixa de texto, escreva Texto1 e, em seguida, prima ENTER. Repare que o depurador pára no procedimento TextBox1_TextChanged na Vista código do ficheiro WebForm1.aspx.
  4. No menu Debug , clique em continuar .
  5. Na caixa de texto na página Web WebForm1 - Microsoft Internet Explorer , escreva texto2 e, em seguida, prima ENTER. Repare que o depurador pára novamente no procedimento TextBox1_TextChanged na vista de código do ficheiro WebForm1.aspx.
  6. No menu Debug , clique em continuar .
  7. Na caixa de texto na página Web WebForm1 - Microsoft Internet Explorer , escreva t . Reparar uma lista pendente de palavras que introduziu anteriormente.
  8. Utilize a tecla SETA para baixo para seleccionar Texto1 e, em seguida, prima ENTER.

    Verá que o evento TextChanged do controlo Caixadetexto1 caixa de texto não é despoletado.

Referências

Para obter mais informações, visite os seguintes Web sites da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.autopostback(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.autopostback(vs.71).aspx)

A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Palavras-chave: 
kbmt kbprb kbcontrol kbproperties kbwebforms kbtshoot KB873198 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 873198  (http://support.microsoft.com/kb/873198/en-us/ )