RichTextBox.GetCharIndexFromPosition(Point) 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.
Belirtilen konuma en yakın karakterin dizinini alır.
public:
int GetCharIndexFromPosition(System::Drawing::Point pt);
public:
override int GetCharIndexFromPosition(System::Drawing::Point pt);
public int GetCharIndexFromPosition (System.Drawing.Point pt);
public override int GetCharIndexFromPosition (System.Drawing.Point pt);
member this.GetCharIndexFromPosition : System.Drawing.Point -> int
override this.GetCharIndexFromPosition : System.Drawing.Point -> int
Public Function GetCharIndexFromPosition (pt As Point) As Integer
Public Overrides Function GetCharIndexFromPosition (pt As Point) As Integer
Parametreler
- pt
- Point
Aranacak konum.
Döndürülenler
Belirtilen konumdaki sıfır tabanlı karakter dizini.
Örnekler
Aşağıdaki kod örneği, bir denetim içindeki belirli bir dizeyi aramak ve bulunan RichTextBox dizenin Find denetim içinde RichTextBox bulunduğu karakter dizinini görüntülemek için yöntemiyle yönteminin nasıl kullanılacağını GetCharIndexFromPosition gösterir. Örnek, denetimin içeriğinde "kahverengi" sözcüğünü arar ve arama dizesinin bulunduğu karakter dizini konumunu döndürür. Bu örnekte, metin içeren adlı richTextBox1
bir denetim içeren bir RichTextBox form olması gerekir. Ayrıca örnekteki kodun olayına MouseDownRichTextBoxbağlı olmasını gerektirir.
private:
void richTextBox1_MouseDown( Object^ /*sender*/, System::Windows::Forms::MouseEventArgs^ e )
{
// Declare the string to search for in the control.
String^ searchString = "brown";
// Determine whether the user clicks the left mouse button and whether it is a double click.
if ( e->Clicks == 1 && e->Button == ::MouseButtons::Left )
{
// Obtain the character index where the user clicks on the control.
int positionToSearch = richTextBox1->GetCharIndexFromPosition( Point(e->X,e->Y) );
// Search for the search string text within the control from the point the user clicked.
int textLocation = richTextBox1->Find( searchString, positionToSearch, RichTextBoxFinds::None );
// If the search string is found (value greater than -1), display the index the string was found at.
if ( textLocation >= 0 )
MessageBox::Show( String::Format( "The search string was found at character index {0}.", textLocation ) ); // Display a message box alerting the user that the text was not found.
else
MessageBox::Show( "The search string was not found within the text of the control." );
}
}
private void richTextBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
// Declare the string to search for in the control.
string searchString = "brown";
// Determine whether the user clicks the left mouse button and whether it is a double click.
if (e.Clicks == 1 && e.Button == MouseButtons.Left)
{
// Obtain the character index where the user clicks on the control.
int positionToSearch = richTextBox1.GetCharIndexFromPosition(new Point(e.X, e.Y));
// Search for the search string text within the control from the point the user clicked.
int textLocation = richTextBox1.Find(searchString, positionToSearch, RichTextBoxFinds.None);
// If the search string is found (value greater than -1), display the index the string was found at.
if (textLocation >= 0)
MessageBox.Show("The search string was found at character index " + textLocation.ToString() + ".");
else
// Display a message box alerting the user that the text was not found.
MessageBox.Show("The search string was not found within the text of the control.");
}
}
Private Sub richTextBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles richTextBox1.MouseDown
' Declare the string to search for in the control.
Dim searchString As String = "brown"
' Determine whether the user clicks the left mouse button and whether it is a double click.
If e.Clicks = 1 And e.Button = MouseButtons.Left Then
' Obtain the character index where the user clicks on the control.
Dim positionToSearch As Integer = richTextBox1.GetCharIndexFromPosition(New Point(e.X, e.Y))
' Search for the search string text within the control from the point the user clicked.
Dim textLocation As Integer = richTextBox1.Find(searchString, positionToSearch, RichTextBoxFinds.None)
' If the search string is found (value greater than -1), display the index the string was found at.
If textLocation >= 0 Then
MessageBox.Show(("The search string was found at character index " + textLocation.ToString() + "."))
' Display a message box alerting the user that the text was not found.
Else
MessageBox.Show("The search string was not found within the text of the control.")
End If
End If
End Sub
Açıklamalar
Bu yöntem, parametresinde belirtilen konuma en yakın karakter dizinini pt
döndürür. Karakter dizini, denetimdeki boşluklar da dahil olmak üzere sıfır tabanlı bir metin dizinidir. Bu yöntem, kullanıcının fare koordinatlarını bu yönteme geçirerek metnin neresinde fareyi üzerine geçirdiğini belirlemek için kullanabilirsiniz. Kullanıcı fare işaretçisini denetimin metnindeki bir sözcüğün üzerinde beklettiğinde görevleri gerçekleştirmek istiyorsanız bu yararlı olabilir.