RichTextBox.GetLineFromCharIndex(Int32) Méthode

Définition

Récupère le numéro de ligne à partir de la position de caractère spécifiée dans le texte du contrôle RichTextBox.Retrieves the line number from the specified character position within the text of the RichTextBox control.

public:
 int GetLineFromCharIndex(int index);
public int GetLineFromCharIndex (int index);
member this.GetLineFromCharIndex : int -> int
Public Function GetLineFromCharIndex (index As Integer) As Integer

Paramètres

index
Int32

Position de l'index de caractère à rechercher.The character index position to search.

Retours

Numéro (base zéro) de la ligne où se trouve l'index de caractère.The zero-based line number in which the character index is located.

Exemples

L’exemple de code suivant illustre l’utilisation de la méthode GetLineFromCharIndex.The following code example demonstrates using the GetLineFromCharIndex method. Pour exécuter l’exemple, collez le code suivant dans un formulaire contenant un contrôle RichTextBox nommé RichTextBox1, un bouton nommé Button1 et deux zones de texte nommées TextBox1 et TextBox2.To run the example, paste the following code in a form containing a RichTextBox control named RichTextBox1, a button named Button1 and two text boxes named TextBox1 and TextBox2. Lorsque l’exemple est en cours d’exécution, entrez une chaîne de recherche dans TextBox2 et cliquez sur le bouton pour obtenir les résultats de la recherche.When the example is running, enter a search string in TextBox2 and click the button to get search results.

// This method demonstrates retrieving line numbers that 
// indicate the location of a particular word
// contained in a RichTextBox. The line numbers are zero-based.
void Button1_Click( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
   
   // Reset the results box.
   TextBox1->Text = "";
   
   // Get the word to search from from TextBox2.
   String^ searchWord = TextBox2->Text;
   int index = 0;
   
   //Declare an ArrayList to store line numbers.
   System::Collections::ArrayList^ lineList = gcnew System::Collections::ArrayList;
   do
   {
      // Find occurrences of the search word, incrementing  
      // the start index. 
      index = RichTextBox1->Find( searchWord, index + 1, RichTextBoxFinds::MatchCase );
      if ( index != -1 )
      {
         lineList->Add( RichTextBox1->GetLineFromCharIndex( index ) );
      }
   }
   while ( (index != -1) );

   // Iterate through the list and display the line numbers in TextBox1.
   System::Collections::IEnumerator^ myEnumerator = lineList->GetEnumerator();
   if ( lineList->Count <= 0 )
   {
      TextBox1->Text = searchWord + " was not found";
   }
   else
   {
      TextBox1->SelectedText = searchWord + " was found on line(s):";
      while ( myEnumerator->MoveNext() )
      {
         TextBox1->SelectedText = myEnumerator->Current + " ";
      }
   }
}
// This method demonstrates retrieving line numbers that 
// indicate the location of a particular word
// contained in a RichTextBox. The line numbers are zero-based.

private void Button1_Click(System.Object sender, System.EventArgs e)
{

    // Reset the results box.
    TextBox1.Text = "";

    // Get the word to search from from TextBox2.
    string searchWord = TextBox2.Text;

    int index = 0;

    //Declare an ArrayList to store line numbers.
    System.Collections.ArrayList lineList = new System.Collections.ArrayList();
    do
    {
        // Find occurrences of the search word, incrementing  
        // the start index. 
        index = RichTextBox1.Find(searchWord, index+1, RichTextBoxFinds.MatchCase);
        if (index!=-1)

            // Find the word's line number and add the line 
            // number to the arrayList. 
        {
            lineList.Add(RichTextBox1.GetLineFromCharIndex(index));
        }
    }
    while((index!=-1));

    // Iterate through the list and display the line numbers in TextBox1.
    System.Collections.IEnumerator myEnumerator = lineList.GetEnumerator();
    if (lineList.Count<=0)
    {
        TextBox1.Text = searchWord+" was not found";
    }
    else
    {
        TextBox1.SelectedText = searchWord+" was found on line(s):";
        while (myEnumerator.MoveNext())
        {
            TextBox1.SelectedText = myEnumerator.Current+" ";
        }
    }
}
' This method demonstrates retrieving line numbers that 
' indicate the location of a particular word
' contained in a RichTextBox. The line numbers are zero-based.

Private Sub Button1_Click(ByVal sender As System.Object, _ 
    ByVal e As System.EventArgs) Handles Button1.Click

    ' Reset the results box.
    TextBox1.Text = ""

    ' Get the word to search from from TextBox2.
    Dim searchWord As String = TextBox2.Text

    Dim index As Integer = 0

    'Declare an ArrayList to store line numbers.
    Dim lineList As New System.Collections.ArrayList
    Do
        ' Find occurrences of the search word, incrementing  
        ' the start index. 
        index = RichTextBox1.Find(searchWord, index + 1, _
            RichTextBoxFinds.MatchCase)
        If (index <> -1) Then

            ' Find the word's line number and add the line 
            'number to the arrayList. 
            lineList.Add(RichTextBox1.GetLineFromCharIndex(index))
        End If
    Loop While (index <> -1)

    ' Iterate through the list and display the line numbers in TextBox1.
    Dim myEnumerator As System.Collections.IEnumerator = _
        lineList.GetEnumerator()
    If lineList.Count <= 0 Then
        TextBox1.Text = searchWord & " was not found"
    Else
        TextBox1.SelectedText = searchWord & " was found on line(s):"
        While (myEnumerator.MoveNext)
            TextBox1.SelectedText = myEnumerator.Current & " "
        End While
    End If

End Sub

Remarques

Cette méthode vous permet de déterminer le numéro de ligne en fonction de l’index de caractère spécifié dans le paramètre index de la méthode.This method enables you to determine the line number based on the character index specified in the index parameter of the method. La première ligne de texte dans le contrôle retourne la valeur zéro.The first line of text in the control returns the value zero. La méthode GetLineFromCharIndex retourne le numéro de ligne physique où se trouve le caractère indexé dans le contrôle.The GetLineFromCharIndex method returns the physical line number where the indexed character is located within the control. Par exemple, si une partie de la première ligne logique du texte dans le contrôle est renvoyée à la ligne suivante, la méthode GetLineFromCharIndex retourne 1 si le caractère à l’index de caractère spécifié est encapsulé sur la deuxième ligne physique.For example, if a portion of the first logical line of text in the control wraps to the next line, the GetLineFromCharIndex method returns 1 if the character at the specified character index has wrapped to the second physical line. Si WordWrap a la valeur false, aucune partie de la ligne n’est renvoyée à la ligne suivante, et la méthode retourne 0 pour l’index de caractère spécifié.If WordWrap is set to false, no portion of the line wraps to the next, and the method returns 0 for the specified character index. Vous pouvez utiliser cette méthode pour déterminer la ligne dans laquelle se trouve un index de caractère spécifique.You can use this method to determine which line a specific character index is located within. Par exemple, après avoir appelé la méthode Find pour rechercher du texte, vous pouvez obtenir l’index de caractère à l’endroit où se trouvent les résultats de la recherche.For example, after calling the Find method to search for text, you can obtain the character index to where the search results are found. Vous pouvez appeler cette méthode avec l’index de caractère retourné par la méthode Find pour déterminer la ligne dans laquelle le mot a été trouvé.You can call this method with the character index returned by the Find method to determine which line the word was found.

Dans certains cas, GetLineFromCharIndex ne lève pas d’exception lorsque le paramètre index est une valeur non valide.In certain cases, GetLineFromCharIndex does not throw an exception when the index parameter is an invalid value. Par exemple :For example:

Dans ces cas, validez l’entrée avant d’appeler GetLineFromCharIndex.In these cases, validate the input before calling GetLineFromCharIndex.

Notes

Si l’index de caractère spécifié dans le paramètre index est au-delà du nombre de lignes disponibles contenu dans le contrôle, le dernier numéro de ligne est retourné.If the character index specified in the index parameter is beyond the available number of lines contained within the control, the last line number is returned.

S’applique à

Voir aussi