Aracılığıyla paylaş


RichTextBox.GetCharIndexFromPosition(Point) Yöntem

Tanım

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.

Şunlara uygulanır

Ayrıca bkz.