O método Find procura a seqüência inteira do controle RichTextBox se o parâmetro Iniciar for igual ao parâmetro final

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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 814317
Sintomas
O método Find do controle RichTextBox procura o texto que é especificado no parâmetro str e, em seguida, retorna o primeiro local de caractere da seqüência de caracteres de pesquisa no controle. Quando o método Find procura uma seqüência que não está no texto do controle, a propriedade Localizar retorna -1 . Quando você usa um controle RichTextBox sobrecarregado método Find como RichTextBox1.Find ( seqüência de caracteres , Iniciar , end , Opções ), e você especificar o mesmo valor para o parâmetro Iniciar e o parâmetro final , as pesquisas de método Localizar todo o texto a partir de zero a posição. Portanto, o método Find retorna a posição da seqüência de pesquisa começa na posição zero. Comportamento semelhante ocorre quando você definir a posição inicial do método RichTextBox.Find como RichTextBox.Text.Length .
Causa
Quando você definir o parâmetro Iniciar como RichTextBox.Text.Length ou definir o parâmetro Iniciar e o parâmetro final para o mesmo valor, o common language runtime chama internamente o método Find ( seqüência de caracteres , RichTextBox.Text.Length , RichTextBox.Text.Length , Opções ). Quando você define os parâmetros de início e de término para o tamanho do texto, o método Find pesquisa todo o texto no controle RichTextBox . Quando você chamar um sobrecarregado método Find ( seq_caracteres , início , Opções ), o common language runtime chama internamente o método Find ( seqüência de caracteres , Iniciar , -1 , Opções ). Da mesma forma, quando você chamar um sobrecarregado método Find ( charset , Iniciar ), o common language runtime chama Localizar ( charset , Iniciar , -1 ). Portanto, todo o texto é pesquisado.
Como Contornar
Para contornar esse problema, defina o final parâmetro para um valor que é um maior do que o parâmetro Iniciar enquanto chama o método Find . Por exemplo, não use a seguinte chamada ao método Localizar :
Find(String, RichTextBox.Text.Length, options)
use em vez disso, este código de método Find :
Find(String, RichTextBox.Text.Length, RichTextBox.Text.Length+1, options)
Situação
Esse comportamento é por design.
Mais Informações

Passos para reproduzir o problema

  1. Crie um novo projeto de aplicativo do Windows usando o Visual Basic 2005, Visual Basic. NET, Visual translation from VPE for Csharp 2005 ou Visual translation from VPE for Csharp .NET.

    Por padrão, é criado o Form1.
  2. Inserir um controle RichTextBox e um controle Button no Form1.
  3. Clique duas vezes em Button1 e adicione o seguinte código no evento Button1_Click :

    Visual Basic .NET ou Visual Basic 2005
       Dim iFound As Integer   RichTextBox1.Text = "Where there is a will there is way"   iFound = RichTextBox1.Find("is", RichTextBox1.Text.Length, RichTextBox1.Text.Length, RichTextBoxFinds.None)   MessageBox.Show(iFound.ToString())
    translation from VPE for Csharp Visual .NET ou Visual C# 2005
       int iFound;   richTextBox1.Text = "Where there is a will there is way";   iFound = richTextBox1.Find("is", richTextBox1.Text.Length, richTextBox1.Text.Length, RichTextBoxFinds.None);   MessageBox.Show(iFound.ToString());
  4. No menu Debug , clique em Iniciar para executar o aplicativo.
  5. Clique em Button1 . Verifique se que o método Find pesquisa todo o texto no controle RichTextBox .
Referências
Para obter mais informações, consulte o SDK do .NET Framework documentação ou visite o seguinte site da MSDN:

Método RichTextBox.Find
http://msdn2.microsoft.com/en-us/library/system.windows.forms.richtextbox.find(vs.71).aspx

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 814317 - Última Revisão: 11/13/2007 09:46:36 - Revisão: 2.9

Microsoft Visual Studio .NET 2003 Professional Edition, Microsoft Visual Studio .NET 2003 Enterprise Architect, Microsoft Visual Studio .NET 2003 Enterprise Developer, Microsoft Visual Studio .NET 2003 Academic Edition, Microsoft Visual Studio .NET 2002 Professional Edition, Microsoft Visual Studio .NET 2002 Enterprise Architect, Microsoft Visual Studio .NET 2002 Enterprise Developer, Microsoft Visual Studio .NET 2002 Academic Edition, Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual C# 2005 Express Edition, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbvs2005applies kbvs2005swept kbwindowsforms kbcontrol kbctrl kbprb KB814317 KbMtpt
Comentários