Freigeben über


RichTextBox.GetCharIndexFromPosition(Point) Methode

Definition

Ruft den Index des Zeichens ab, das sich am nächsten zur angegebenen Position befindet.

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

Parameter

pt
Point

Die zu suchende Position.

Gibt zurück

Der nullbasierte Zeichenindex an der angegebenen Position.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die GetCharIndexFromPosition -Methode mit der Find -Methode verwendet wird, um innerhalb eines RichTextBox Steuerelements nach einer bestimmten Zeichenfolge zu suchen und den Zeichenindex anzuzeigen, an dem sich die gefundene Zeichenfolge im RichTextBox Steuerelement befindet. Das Beispiel sucht im Inhalt des Steuerelements nach dem Wort "brown" und gibt die Indexposition des Zeichens zurück, an der die Suchzeichenfolge gefunden wird. Dieses Beispiel erfordert, dass Sie über ein Formular verfügen, das ein RichTextBox Steuerelement namens enthält richTextBox1 , das Text enthält. Außerdem ist es erforderlich, dass der Code im Beispiel mit dem MouseDown -Ereignis von RichTextBoxverbunden ist.

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

Hinweise

Diese Methode gibt den Zeichenindex zurück, der der im pt Parameter angegebenen Position am nächsten kommt. Der Zeichenindex ist ein nullbasierter Index von Text im Steuerelement, einschließlich Leerzeichen. Sie können diese Methode verwenden, um zu bestimmen, wo im Text der Mausze mauszeig ist, indem Sie die Mauskoordinaten an diese Methode übergeben. Dies kann nützlich sein, wenn Sie Aufgaben ausführen möchten, wenn der Benutzer den Mauszeiger über ein Wort im Text des Steuerelements zeigt.

Gilt für:

Weitere Informationen