ListBox.IndexFromPoint Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca zerowy indeks elementu na określonych współrzędnych.
Przeciążenia
IndexFromPoint(Point) |
Zwraca zerowy indeks elementu na określonych współrzędnych. |
IndexFromPoint(Int32, Int32) |
Zwraca zerowy indeks elementu na określonych współrzędnych. |
IndexFromPoint(Point)
Zwraca zerowy indeks elementu na określonych współrzędnych.
public:
int IndexFromPoint(System::Drawing::Point p);
public int IndexFromPoint (System.Drawing.Point p);
member this.IndexFromPoint : System.Drawing.Point -> int
Public Function IndexFromPoint (p As Point) As Integer
Parametry
Zwraca
Indeks na podstawie zera elementu znalezionego na określonych współrzędnych; zwraca wartość ListBox.NoMatches
, jeśli nie znaleziono dopasowania.
Przykłady
W poniższym przykładzie kodu pokazano, jak wykonywać operacje przeciągania i upuszczania przy użyciu kontrolki zawierającej ListBox elementy do upuszczania w kontrolce RichTextBox . Konstruktor formularza ustawia AllowDrop właściwość w celu true
włączenia operacji przeciągania i upuszczania w obiekcie RichTextBox. W przykładzie użyto MouseDown zdarzenia , ListBox aby uruchomić operację przeciągania przez wywołanie DoDragDrop metody . W przykładzie DragEnter użyto zdarzenia w celu określenia, czy element przeciągnięty do obiektu RichTextBox jest prawidłowym typem danych. Zdarzenie DragDrop wykonuje rzeczywiste upuszczanie przeciąganego elementu do RichTextBox kontrolki w bieżącej lokalizacji kursora RichTextBoxw obiekcie . W tym przykładzie wymagane jest, aby DragDrop zdarzenia i DragEnter były połączone z procedurami obsługi zdarzeń zdefiniowanymi w przykładzie.
public:
Form1()
{
InitializeComponent();
// Sets the control to allow drops, and then adds the necessary event handlers.
this->richTextBox1->AllowDrop = true;
}
private:
void listBox1_MouseDown( Object^ sender, System::Windows::Forms::MouseEventArgs^ e )
{
// Determines which item was selected.
ListBox^ lb = (dynamic_cast<ListBox^>(sender));
Point pt = Point(e->X,e->Y);
//Retrieve the item at the specified location within the ListBox.
int index = lb->IndexFromPoint( pt );
// Starts a drag-and-drop operation.
if ( index >= 0 )
{
// Retrieve the selected item text to drag into the RichTextBox.
lb->DoDragDrop( lb->Items[ index ]->ToString(), DragDropEffects::Copy );
}
}
void richTextBox1_DragEnter( Object^ /*sender*/, DragEventArgs^ e )
{
// If the data is text, copy the data to the RichTextBox control.
if ( e->Data->GetDataPresent( "Text" ) )
e->Effect = DragDropEffects::Copy;
}
void richTextBox1_DragDrop( Object^ /*sender*/, DragEventArgs^ e )
{
// Paste the text into the RichTextBox where at selection location.
richTextBox1->SelectedText = e->Data->GetData( "System.String", true )->ToString();
}
public Form1()
{
InitializeComponent();
// Sets the control to allow drops, and then adds the necessary event handlers.
this.richTextBox1.AllowDrop = true;
}
private void listBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
// Determines which item was selected.
ListBox lb =( (ListBox)sender);
Point pt = new Point(e.X,e.Y);
//Retrieve the item at the specified location within the ListBox.
int index = lb.IndexFromPoint(pt);
// Starts a drag-and-drop operation.
if(index>=0)
{
// Retrieve the selected item text to drag into the RichTextBox.
lb.DoDragDrop(lb.Items[index].ToString(), DragDropEffects.Copy);
}
}
private void richTextBox1_DragEnter(object sender, DragEventArgs e)
{
// If the data is text, copy the data to the RichTextBox control.
if(e.Data.GetDataPresent("Text"))
e.Effect = DragDropEffects.Copy;
}
private void richTextBox1_DragDrop(object sender, DragEventArgs e)
{
// Paste the text into the RichTextBox where at selection location.
richTextBox1.SelectedText = e.Data.GetData("System.String", true).ToString();
}
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
richTextBox1.AllowDrop = True
End Sub
Private Sub listBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles listBox1.MouseDown
' Determines which item was selected.
Dim lb As ListBox = CType(sender, ListBox)
Dim pt As New Point(e.X, e.Y)
'Retrieve the item at the specified location within the ListBox.
Dim index As Integer = lb.IndexFromPoint(pt)
' Starts a drag-and-drop operation.
If index >= 0 Then
' Retrieve the selected item text to drag into the RichTextBox.
lb.DoDragDrop(lb.Items(index).ToString(), DragDropEffects.Copy)
End If
End Sub
Private Sub richTextBox1_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles richTextBox1.DragEnter
' If the data is text, copy the data to the RichTextBox control.
If e.Data.GetDataPresent("Text") Then
e.Effect = DragDropEffects.Copy
End If
End Sub
Private Sub richTextBox1_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles richTextBox1.DragDrop
' Paste the text into the RichTextBox where at selection location.
richTextBox1.SelectedText = e.Data.GetData("System.String", True).ToString()
End Sub
Uwagi
Ta metoda umożliwia określenie, który element znajduje się w określonej lokalizacji w kontrolce. Możesz użyć tej metody, aby określić, który element na liście jest wybrany, gdy użytkownik kliknie ListBoxprawym przyciskiem myszy element . Lokalizację kursora można określić i przekazać do p
parametru IndexFromPoint metody, aby określić, który element użytkownik kliknął prawym przyciskiem myszy. Następnie można wyświetlić menu skrótów dla użytkownika w celu udostępnienia zadań i funkcji na podstawie określonego elementu.
Dotyczy
IndexFromPoint(Int32, Int32)
Zwraca zerowy indeks elementu na określonych współrzędnych.
public:
int IndexFromPoint(int x, int y);
public int IndexFromPoint (int x, int y);
member this.IndexFromPoint : int * int -> int
Public Function IndexFromPoint (x As Integer, y As Integer) As Integer
Parametry
- x
- Int32
Współrzędna x lokalizacji do wyszukania.
- y
- Int32
Współrzędna y lokalizacji do wyszukania.
Zwraca
Indeks na podstawie zera elementu znalezionego na określonych współrzędnych; zwraca wartość ListBox.NoMatches
, jeśli nie znaleziono dopasowania.
Przykłady
W poniższym przykładzie kodu pokazano, jak wykonywać operacje przeciągania i upuszczania przy użyciu kontrolki zawierającej ListBox elementy do upuszczania w kontrolce RichTextBox . Konstruktor formularza ustawia AllowDrop właściwość w celu true
włączenia operacji przeciągania i upuszczania w obiekcie RichTextBox. W przykładzie użyto MouseDown zdarzenia , ListBox aby uruchomić operację przeciągania przez wywołanie DoDragDrop metody . W przykładzie DragEnter użyto zdarzenia w celu określenia, czy element przeciągnięty do obiektu RichTextBox jest prawidłowym typem danych. Zdarzenie DragDrop wykonuje rzeczywiste upuszczanie przeciąganego elementu do RichTextBox kontrolki w bieżącej lokalizacji kursora RichTextBoxw obiekcie . W tym przykładzie wymagane jest, aby DragDrop zdarzenia i DragEnter były połączone z procedurami obsługi zdarzeń zdefiniowanymi w przykładzie.
public:
Form1()
{
InitializeComponent();
// Sets the control to allow drops, and then adds the necessary event handlers.
this->richTextBox1->AllowDrop = true;
}
private:
void listBox1_MouseDown( Object^ sender, System::Windows::Forms::MouseEventArgs^ e )
{
// Determines which item was selected.
ListBox^ lb = (dynamic_cast<ListBox^>(sender));
Point pt = Point(e->X,e->Y);
//Retrieve the item at the specified location within the ListBox.
int index = lb->IndexFromPoint( pt );
// Starts a drag-and-drop operation.
if ( index >= 0 )
{
// Retrieve the selected item text to drag into the RichTextBox.
lb->DoDragDrop( lb->Items[ index ]->ToString(), DragDropEffects::Copy );
}
}
void richTextBox1_DragEnter( Object^ /*sender*/, DragEventArgs^ e )
{
// If the data is text, copy the data to the RichTextBox control.
if ( e->Data->GetDataPresent( "Text" ) )
e->Effect = DragDropEffects::Copy;
}
void richTextBox1_DragDrop( Object^ /*sender*/, DragEventArgs^ e )
{
// Paste the text into the RichTextBox where at selection location.
richTextBox1->SelectedText = e->Data->GetData( "System.String", true )->ToString();
}
public Form1()
{
InitializeComponent();
// Sets the control to allow drops, and then adds the necessary event handlers.
this.richTextBox1.AllowDrop = true;
}
private void listBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
// Determines which item was selected.
ListBox lb =( (ListBox)sender);
Point pt = new Point(e.X,e.Y);
//Retrieve the item at the specified location within the ListBox.
int index = lb.IndexFromPoint(pt);
// Starts a drag-and-drop operation.
if(index>=0)
{
// Retrieve the selected item text to drag into the RichTextBox.
lb.DoDragDrop(lb.Items[index].ToString(), DragDropEffects.Copy);
}
}
private void richTextBox1_DragEnter(object sender, DragEventArgs e)
{
// If the data is text, copy the data to the RichTextBox control.
if(e.Data.GetDataPresent("Text"))
e.Effect = DragDropEffects.Copy;
}
private void richTextBox1_DragDrop(object sender, DragEventArgs e)
{
// Paste the text into the RichTextBox where at selection location.
richTextBox1.SelectedText = e.Data.GetData("System.String", true).ToString();
}
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
richTextBox1.AllowDrop = True
End Sub
Private Sub listBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles listBox1.MouseDown
' Determines which item was selected.
Dim lb As ListBox = CType(sender, ListBox)
Dim pt As New Point(e.X, e.Y)
'Retrieve the item at the specified location within the ListBox.
Dim index As Integer = lb.IndexFromPoint(pt)
' Starts a drag-and-drop operation.
If index >= 0 Then
' Retrieve the selected item text to drag into the RichTextBox.
lb.DoDragDrop(lb.Items(index).ToString(), DragDropEffects.Copy)
End If
End Sub
Private Sub richTextBox1_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles richTextBox1.DragEnter
' If the data is text, copy the data to the RichTextBox control.
If e.Data.GetDataPresent("Text") Then
e.Effect = DragDropEffects.Copy
End If
End Sub
Private Sub richTextBox1_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles richTextBox1.DragDrop
' Paste the text into the RichTextBox where at selection location.
richTextBox1.SelectedText = e.Data.GetData("System.String", True).ToString()
End Sub
Uwagi
Ta metoda umożliwia określenie elementu znajdującego się w określonej lokalizacji w kontrolce. Możesz użyć tej metody, aby określić, który element na liście jest wybrany, gdy użytkownik kliknie ListBoxprawym przyciskiem myszy element . Lokalizację kursora można określić i przekazać do x
parametrów IndexFromPoint i y
metody w celu określenia elementu, który użytkownik kliknął prawym przyciskiem myszy. Następnie można wyświetlić menu skrótów dla użytkownika w celu udostępnienia zadań i funkcji na podstawie określonego elementu.