RichTextBox.GetLineFromCharIndex(Int32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Recupera o número de linha da posição de caractere especificada dentro do texto do controle 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
Parâmetros
- index
- Int32
A posição de índice do caractere a ser pesquisada.
Retornos
O número de linha de base zero no qual o índice do caractere está localizado.
Exemplos
O exemplo de código a seguir demonstra o uso do GetLineFromCharIndex método . Para executar o exemplo, cole o código a seguir em um formulário que contém um RichTextBox controle chamado RichTextBox1
, um botão chamado Button1
e duas caixas de texto denominadas TextBox1
e TextBox2
. Quando o exemplo estiver em execução, insira uma cadeia de caracteres de pesquisa no TextBox2
e clique no botão para obter os resultados da pesquisa.
// 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
Comentários
Esse método permite determinar o número de linha com base no índice de caracteres especificado no index
parâmetro do método . A primeira linha de texto no controle retorna o valor zero. O GetLineFromCharIndex método retorna o número de linha física em que o caractere indexado está localizado dentro do controle . Por exemplo, se uma parte da primeira linha lógica de texto no controle encapsular para a próxima linha, o GetLineFromCharIndex método retornará 1 se o caractere no índice de caracteres especificado tiver encapsulado para a segunda linha física. Se WordWrap for definido como false
, nenhuma parte da linha será encapsulada para a próxima e o método retornará 0 para o índice de caracteres especificado. Você pode usar esse método para determinar em qual linha um índice de caracteres específico está localizado. Por exemplo, depois de chamar o Find método para pesquisar texto, você pode obter o índice de caracteres para onde os resultados da pesquisa são encontrados. Você pode chamar esse método com o índice de caracteres retornado pelo Find método para determinar qual linha a palavra foi encontrada.
Em determinados casos, GetLineFromCharIndex não gera uma exceção quando o index
parâmetro é um valor inválido. Por exemplo:
Se o
index
parâmetro for MinValue ou -1, GetLineFromCharIndex retornará 0.Se o
index
parâmetro for o comprimento do texto ou MaxValue, GetLineFromCharIndex retornará o número da última linha de texto, que não é necessariamente o mesmoLines.Length-1
que , dependendo do valor da WordWrap propriedade.
Nesses casos, valide a entrada antes de chamar GetLineFromCharIndex.
Observação
Se o índice de caracteres especificado no index
parâmetro estiver além do número disponível de linhas contidas no controle, o último número de linha será retornado.