Não estiverem seleccionados itens no controlo de caixa de combinação enquanto escreve os primeiros caracteres

Traduções de Artigos Traduções de Artigos
Artigo: 814362 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Defina a propriedade o DropDownStyle do controlo de caixa de combinação para DropDownList e, em seguida, escreva os primeiros caracteres do produto em que a caixa de combinação durante o tempo de execução. O item que está seleccionado a caixa de combinação não coincide com os caracteres que escrever. Se baseia o item que está seleccionado a caixa de combinação no último carácter que escreve. Por exemplo, se os produtos em que a caixa de combinação são vermelho, Carvalho e rosa, quando escreve ferries a caixa de combinação, o foco estiver no Carvalho em vez de rose.

Causa

Este problema ocorre porque a procura de caixa de combinação baseia-se um carácter em vez do conjunto de caracteres completa.

Como contornar

Para contornar este problema, adicione o código que procura itens com todos os caracteres que escrever a caixa de combinação. O código também tem de seleccionar o item que se aproxime de todos os caracteres. Para limpar o texto de procura a intervalos regulares, utilize um temporizador de controlo. Para tal, siga estes passos:
  1. No Microsoft Visual Studio .NET ou no Microsoft Visual Studio 2005, criar uma nova do Windows aplicação utilizando o Visual Basic. NET, Visual Basic 2005 ou Visual C#. NET.

    Por predefinição, é criado o Form1.
  2. A partir da caixa de ferramentas, arraste um temporizador ao Form1.
  3. Na janela Propriedades, defina o activado propriedade como true.
  4. Adicione a seguinte instrução à secção declaração de variável do código:

    Visual Basic .NET ou Visual Basic 2005
    Dim searchstr As String
    O Visual C# .NET
    string searchstr;
  5. Adicione o seguinte código ao evento de carregamento do Form1:

    Visual Basic .NET ou Visual Basic 2005
    'set the timer interval and start the timer
    Timer1.Interval = 1000
    Timer1.Start()
    O Visual C# .NET
    //set the interval  and start the timer
    timer1.Interval =1000;
    timer1.Start();
  6. Adicione o seguinte código ao evento das marcas de escala de Timer1:

    Visual Basic .NET ou Visual Basic 2005
    'empty the string for every 1 seconds
    searchstr = ""
    O Visual C# .NET
    //empty the string for every 1 seconds
    searchstr="";
  7. Adicione o seguinte código ao evento TeclaEmCima do ComboBox1:

    Visual Basic .NET ou Visual Basic 2005
          searchstr = searchstr & Chr(e.KeyValue)
          ' If the Search string is greater than 1 then use custom logic
          If searchstr.Length > 1 Then
             Dim index As Integer
             ' Search the Item that matches the string typed
             index = ComboBox1.FindString(searchstr)
             ' Select the Item in the Combo
             ComboBox1.SelectedIndex = index
          End If  
    Visual C# .NET
             searchstr = searchstr + Convert.ToChar(e.KeyCode);
             // If the Search string is greater than 1 then use custom logic
             if (searchstr.Length > 1)
             {
                int index;
                // Search the Item that matches the string typed
                index=comboBox1.FindString(searchstr);
                // Select the Item in the Combo
                comboBox1.SelectedIndex=index;
             }

Ponto Da Situação

Este comportamento ocorre por predefinição.

Mais Informação

Passos para reproduzir o comportamento

  1. No Microsoft Visual Studio .NET ou no Microsoft Visual Studio 2005, criar uma nova do Windows aplicação utilizando o Visual Basic. NET, Visual Basic 2005 ou Visual C#. NET.

    Por predefinição, é criado o Form1. Nota que tem de alterar o código de Visual Basic 2005. Por predefinição, o Visual Basic cria dois ficheiros do projecto quando cria um projecto de Windows Forms. Se o formulário é o nome Form1, os dois ficheiros que representam o formulário são denominados Form1.VB e Form1.Designer.vb. Tem de escrever o código no ficheiro Form1.VB. O Windows Forms Designer escreve o código no ficheiro Form1.Designer.vb. O Windows Forms Designer utiliza a palavra-chave parcial para dividir a aplicação do Form1 em dois ficheiros separados. Este comportamento impede que o código gerado pelo estruturador a ser intercalados com o código.

    Para obter mais informações sobre novos melhoramentos de linguagem Visual Basic 2005, visite o seguinte Web site da Microsoft Developer Network (MSDN):
    http://msdn2.microsoft.com/en-us/library/ms379584(vs.80).aspx
    Para obter mais informações sobre classes parciais e o Windows Forms Designer, visite o seguinte site da Web MSDN:
    http://msdn2.microsoft.com/en-us/library/ms171843.aspx
  2. A partir da caixa de ferramentas, arraste uma caixa de combinação ao Form1.
  3. Clique com o botão direito do rato ComboBox1 e, em seguida, clique em Propriedades.
  4. Na janela Propriedades, clique para seleccionar o DropDownStyle e, em seguida, defina a propriedade para DropDownList.
  5. Na janela Propriedades, clique para seleccionar itens e, em seguida, clique no botão de reticências (...).
  6. No Editor de colecções de cadeia, escreva vermelho, Carvalho e rosa em linhas diferentes e, em seguida, clique em OK.
  7. No menu de depuração, clique em Iniciar para executar a aplicação.
  8. Escreva a ferriesComboBox1.

Referências

Para mais informações, visite o seguinte Web site da MSDN:

Propriedade ComboBox.DropDownStyle
http://msdn2.microsoft.com/en-us/library/system.windows.forms.combobox.dropdownstyle(vs.71).aspx

Propriedades

Artigo: 814362 - Última revisão: 11 de maio de 2007 - Revisão: 2.8
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbvs2005swept kbvs2005applies kbctrl kbcontrol kbproperties kbdisplay kbwindowsforms kbcombobox kbprb KB814362 KbMtpt
Traduçã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: 814362

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com