RichTextBox.GetLineFromCharIndex(Int32) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Denetim metni RichTextBox içinde belirtilen karakter konumundan satır numarasını alır.
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
Parametreler
- index
- Int32
Aranacak karakter dizini konumu.
Döndürülenler
Karakter dizininin bulunduğu sıfır tabanlı satır numarası.
Örnekler
Aşağıdaki kod örneğinde yönteminin kullanılması gösterilmektedir GetLineFromCharIndex . Örneği çalıştırmak için, aşağıdaki kodu adlı denetimi içeren bir RichTextBox forma, adlı Button1
RichTextBox1
bir düğmeye ve ve TextBox2
adlı TextBox1
iki metin kutusuna yapıştırın. Örnek çalışırken, içine bir arama dizesi TextBox2
girin ve arama sonuçlarını almak için düğmeye tıklayın.
// 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
Açıklamalar
Bu yöntem, yönteminin parametresinde index
belirtilen karakter dizinine göre satır numarasını belirlemenizi sağlar. Denetimdeki ilk metin satırı sıfır değerini döndürür. yöntemi, GetLineFromCharIndex dizine alınan karakterin denetim içinde bulunduğu fiziksel satır numarasını döndürür. Örneğin, denetimdeki metnin ilk mantıksal satırının bir bölümü sonraki satıra kaydırılırsa, GetLineFromCharIndex belirtilen karakter dizinindeki karakter ikinci fiziksel satıra sarmalanmışsa yöntem 1 döndürür. olarak ayarlanırsa WordWrapfalse
, satırın hiçbir bölümü sonrakine kaydırılır ve yöntem belirtilen karakter dizini için 0 döndürür. Belirli bir karakter dizininin hangi satırda bulunduğunu belirlemek için bu yöntemi kullanabilirsiniz. Örneğin, metin aramak için yöntemini çağırdıktan Find sonra, arama sonuçlarının bulunduğu yere karakter dizinini alabilirsiniz. Sözcüğün hangi satırda bulunduğunu belirlemek için yöntemi tarafından Find döndürülen karakter diziniyle bu yöntemi çağırabilirsiniz.
Bazı durumlarda, GetLineFromCharIndex parametre geçersiz bir değer olduğunda index
özel durum oluşturmaz. Örnek:
index
parametre veya -1 iseMinValue, GetLineFromCharIndex 0 döndürür.index
Parametre metin uzunluğu veya MaxValueise, GetLineFromCharIndex özelliğin değerine bağlı olarak, ile aynıLines.Length-1
olması gerekmeyen son metin satırının WordWrap sayısını döndürür.
Böyle durumlarda, çağırmadan GetLineFromCharIndexönce girişi doğrulayın.
Not
parametresinde belirtilen karakter dizini denetimin index
içinde bulunan kullanılabilir satır sayısının ötesindeyse, son satır numarası döndürülür.