Partage via


RichTextBox.GetLineFromCharIndex(Int32) Méthode

Définition

Récupère le numéro de ligne de la position de caractère spécifiée dans le texte du RichTextBox contrôle.

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

Paramètres

index
Int32

Position de l’index de caractères à rechercher.

Retours

Numéro de ligne de base zéro dans lequel se trouve l’index de caractère.

Exemples

L’exemple de code suivant illustre l’utilisation de la GetLineFromCharIndex méthode. Pour exécuter l’exemple, collez le code suivant dans un formulaire contenant un RichTextBox contrôle nommé RichTextBox1, un bouton nommé Button1 et deux zones de texte nommées TextBox1 et TextBox2. Lorsque l’exemple est en cours d’exécution, entrez une chaîne de recherche et TextBox2 cliquez sur le bouton pour obtenir les résultats de la recherche.

// 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ères spécifié dans le index paramètre de la méthode. La première ligne de texte du contrôle retourne la valeur zéro. La GetLineFromCharIndex méthode retourne le numéro de ligne physique où se trouve le caractère indexé dans le contrôle. Par exemple, si une partie de la première ligne logique de texte du contrôle est encapsulée à la ligne suivante, la GetLineFromCharIndex méthode retourne 1 si le caractère à l’index de caractères spécifié a été encapsulé à la deuxième ligne physique. Si WordWrap elle est définie falsesur , aucune partie de la ligne est encapsulée à la suivante, et la méthode retourne 0 pour l’index de caractère spécifié. Vous pouvez utiliser cette méthode pour déterminer la ligne dans laquelle se trouve un index de caractères spécifique. Par exemple, après avoir appelé la méthode pour rechercher du Find texte, vous pouvez obtenir l’index de caractères où se trouvent les résultats de la recherche. Vous pouvez appeler cette méthode avec l’index de caractères retourné par la Find méthode pour déterminer la ligne trouvée par le mot.

Dans certains cas, GetLineFromCharIndex ne lève pas d’exception lorsque le index paramètre est une valeur non valide. Par exemple:

  • Si le index paramètre est MinValue ou -1, GetLineFromCharIndex retourne 0.

  • Si le index paramètre est la longueur du texte ou MaxValue, GetLineFromCharIndex retourne le nombre de la dernière ligne de texte, ce qui n’est pas nécessairement le même que Lines.Length-1, en fonction de la valeur de la WordWrap propriété.

Dans ces cas, validez l’entrée avant d’appeler GetLineFromCharIndex.

Note

Si l’index de caractère spécifié dans le index paramètre dépasse le nombre disponible de lignes contenues dans le contrôle, le dernier numéro de ligne est retourné.

S’applique à

Voir aussi