Udostępnij za pośrednictwem


ListBox.IndexFromPoint Metoda

Definicja

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

p
Point

Point Obiekt zawierający współrzędne używane do uzyskania indeksu elementu.

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.

Dotyczy