RichTextBox.GetLineFromCharIndex(Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die Zeilennummer von der angegebenen Zeichenposition im Text des RichTextBox-Steuerelements ab.
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
Parameter
- index
- Int32
Die zu suchende Zeichenindexposition.
Gibt zurück
Die nullbasierte Nummer der Zeile, in der sich der Zeichenindex befindet.
Beispiele
Im folgenden Codebeispiel wird die Verwendung der GetLineFromCharIndex -Methode veranschaulicht. Fügen Sie zum Ausführen des Beispiels den folgenden Code in ein Formular ein, das ein RichTextBox Steuerelement mit dem Namen RichTextBox1
, eine Schaltfläche mit dem Namen Button1
und zwei Textfelder mit dem Namen TextBox1
und TextBox2
enthält. Wenn das Beispiel ausgeführt wird, geben Sie eine Suchzeichenfolge in TextBox2
ein, und klicken Sie auf die Schaltfläche, um Suchergebnisse abzurufen.
// 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
Hinweise
Mit dieser Methode können Sie die Zeilennummer basierend auf dem im index
-Parameter der -Methode angegebenen Zeichenindex bestimmen. Die erste Textzeile im Steuerelement gibt den Wert 0 zurück. Die GetLineFromCharIndex -Methode gibt die physische Zeilennummer zurück, in der sich das indizierte Zeichen innerhalb des Steuerelements befindet. Wenn beispielsweise ein Teil der ersten logischen Textzeile im Steuerelement in die nächste Zeile umbrochen wird, gibt die GetLineFromCharIndex Methode 1 zurück, wenn das Zeichen am angegebenen Zeichenindex in die zweite physische Zeile umschlossen wurde. Wenn WordWrap auf false
festgelegt ist, wird kein Teil der Zeile in den nächsten umgebrochen, und die -Methode gibt 0 für den angegebenen Zeichenindex zurück. Sie können diese Methode verwenden, um zu bestimmen, in welcher Zeile sich ein bestimmter Zeichenindex befindet. Beispielsweise können Sie nach dem Aufrufen der Find -Methode zum Suchen nach Text den Zeichenindex abrufen, an dem die Suchergebnisse gefunden werden. Sie können diese Methode mit dem von der Find -Methode zurückgegebenen Zeichenindex aufrufen, um zu bestimmen, welche Zeile das Wort gefunden wurde.
In bestimmten Fällen löst keine Ausnahme aus, GetLineFromCharIndex wenn der index
Parameter ein ungültiger Wert ist. Beispiel:
Wenn der
index
Parameter oder -1 ist MinValue , GetLineFromCharIndex wird 0 zurückgegeben.Wenn der
index
-Parameter die Textlänge oder MaxValuehat, GetLineFromCharIndex gibt die Nummer der letzten Textzeile zurück, die nicht unbedingt mitLines.Length-1
identisch ist, abhängig vom Wert der WordWrap -Eigenschaft.
Überprüfen Sie in diesen Fällen die Eingabe, bevor Sie aufrufen GetLineFromCharIndex.
Hinweis
Wenn der im index
-Parameter angegebene Zeichenindex die verfügbare Anzahl von Zeilen im -Steuerelement überschreitet, wird die letzte Zeilennummer zurückgegeben.