RichTextBox.GetCharIndexFromPosition(Point) Método

Definição

Recupera o índice do carácter mais próximo da localização especificada.

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

Parâmetros

pt
Point

O local a procurar.

Devoluções

O índice de caracteres baseado em zero na localização especificada.

Exemplos

O exemplo de código seguinte demonstra como usar o GetCharIndexFromPosition método com o Find método para procurar uma cadeia específica dentro de um RichTextBox controlo e mostrar o índice de caracteres onde a cadeia encontrada está localizada dentro do RichTextBox controlo. O exemplo procura a palavra "brown" no conteúdo do controlo e devolve a posição do índice de caracteres onde a cadeia de pesquisa é encontrada. Este exemplo exige que tenhas um formulário que contenha um RichTextBox controlo chamado richTextBox1 que contém texto. Também requer que o código no exemplo esteja ligado ao MouseDown evento do RichTextBox.

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

Observações

Este método devolve o índice de caracteres mais próximo da posição especificada no pt parâmetro. O índice de caracteres é um índice zero de texto no controlo, incluindo espaços. Pode usar este método para determinar em que parte do texto o utilizador tem o rato por cima, passando as coordenadas do rato para este método. Isto pode ser útil se quiser realizar tarefas quando o utilizador pousa o ponteiro do rato sobre uma palavra no texto do controlo.

Aplica-se a

Ver também