RichTextBox.GetCharIndexFromPosition(Point) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Načte index znaku nejblíže zadanému umístění.
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
Parametry
- pt
- Point
Umístění, které se má hledat.
Návraty
Index znaků založený na nule v zadaném umístění.
Příklady
Následující příklad kódu ukazuje, jak použít metodu GetCharIndexFromPosition s Find metodou k vyhledání konkrétního řetězce v rámci RichTextBox ovládacího prvku a zobrazení indexu znaků, kde je nalezený řetězec umístěn v ovládacím RichTextBox prvku. Příklad vyhledá slovo "brown" v obsahu ovládacího prvku a vrátí pozici indexu znaků, kde je nalezen hledaný řetězec. Tento příklad vyžaduje, abyste měli formulář, který obsahuje ovládací prvek RichTextBox s názvem richTextBox1
, který obsahuje text. Vyžaduje také, aby byl kód v příkladu připojen k MouseDown události 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
Poznámky
Tato metoda vrátí index znaků, který je nejblíže pozici zadané v parametru pt
. Index znaků je index textu v ovládacím prvku založený na nule, včetně mezer. Pomocí této metody můžete určit, kde má uživatel v textu myš, předáním souřadnic myši této metodě. To může být užitečné, pokud chcete provádět úkoly, když uživatel umístí ukazatel myši na slovo v textu ovládacího prvku.