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.

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ère à rechercher.

Retours

Numéro (base zéro) de la ligne où 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 dans TextBox2 , puis 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é est encapsulé à la deuxième ligne physique. Si WordWrap a la falsevaleur , aucune partie de la ligne n’est encapsulée à la suivante, et la méthode retourne 0 pour l’index de caractères 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 Find méthode pour rechercher du texte, vous pouvez obtenir l’index de caractères à l’emplacement 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 du mot trouvé.

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

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

  • Si le index paramètre est la longueur de texte ou MaxValue, GetLineFromCharIndex retourne le numéro de la dernière ligne de texte, qui n’est pas nécessairement identique à Lines.Length-1, en fonction de la valeur de la WordWrap propriété .

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

Notes

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

S’applique à

Voir aussi