Sdílet prostřednictvím


ListBox.IndexFromPoint Metoda

Definice

Vrátí index položky založený na nule na zadaných souřadnicích.

Přetížení

Name Description
IndexFromPoint(Point)

Vrátí index položky založený na nule na zadaných souřadnicích.

IndexFromPoint(Int32, Int32)

Vrátí index položky založený na nule na zadaných souřadnicích.

IndexFromPoint(Point)

Zdroj:
ListBox.cs
Zdroj:
ListBox.cs
Zdroj:
ListBox.cs
Zdroj:
ListBox.cs
Zdroj:
ListBox.cs

Vrátí index položky založený na nule na zadaných souřadnicích.

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

Objekt Point obsahující souřadnice použité k získání indexu položky.

Návraty

Index položky na základě nuly nalezený v zadaných souřadnicích; vrátí ListBox.NoMatches , pokud nebyla nalezena žádná shoda.

Příklady

Následující příklad kódu ukazuje, jak provádět operace přetažení pomocí ListBox ovládacího prvku, který obsahuje položky k přetažení do RichTextBox ovládacího prvku. Konstruktor formuláře nastaví AllowDrop vlastnost tak, aby true bylo možné provádět operace přetažení do objektu RichTextBox. Příklad používá MouseDown událost ListBox spuštění operace přetažení voláním DoDragDrop metody. Příklad používá DragEnter událost k určení, zda je položka přetažena do platného datového RichTextBox typu. Událost DragDrop provede skutečné vyřazení přetažené položky do RichTextBox ovládacího prvku v aktuálním umístění kurzoru RichTextBoxv rámci . Tento příklad vyžaduje, aby DragDrop byly události DragEnter připojené k obslužné rutině událostí definované v příkladu.

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

Poznámky

Tato metoda umožňuje určit, která položka se nachází v určitém umístění v ovládacím prvku. Pomocí této metody můžete určit, která položka v seznamu je vybrána, když uživatel klikne pravým tlačítkem myši na ListBoxpoložku . Umístění kurzoru lze určit a předat p parametru IndexFromPoint metody k určení položky, na kterou uživatel klikl pravým tlačítkem myši. Potom můžete uživateli zobrazit místní nabídku, která poskytne úkoly a funkce na základě konkrétní položky.

Platí pro

IndexFromPoint(Int32, Int32)

Zdroj:
ListBox.cs
Zdroj:
ListBox.cs
Zdroj:
ListBox.cs
Zdroj:
ListBox.cs
Zdroj:
ListBox.cs

Vrátí index položky založený na nule na zadaných souřadnicích.

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

Souřadnice x umístění, ve které se má hledat.

y
Int32

Souřadnice y umístění, ve které se má hledat.

Návraty

Index položky na základě nuly nalezený v zadaných souřadnicích; vrátí ListBox.NoMatches , pokud nebyla nalezena žádná shoda.

Příklady

Následující příklad kódu ukazuje, jak provádět operace přetažení pomocí ListBox ovládacího prvku, který obsahuje položky k přetažení do RichTextBox ovládacího prvku. Konstruktor formuláře nastaví AllowDrop vlastnost tak, aby true bylo možné provádět operace přetažení do objektu RichTextBox. Příklad používá MouseDown událost ListBox spuštění operace přetažení voláním DoDragDrop metody. Příklad používá DragEnter událost k určení, zda je položka přetažena do platného datového RichTextBox typu. Událost DragDrop provede skutečné vyřazení přetažené položky do RichTextBox ovládacího prvku v aktuálním umístění kurzoru RichTextBoxv rámci . Tento příklad vyžaduje, aby DragDrop byly události DragEnter připojené k obslužné rutině událostí definované v příkladu.

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

Poznámky

Tato metoda umožňuje určit, která položka se nachází v určitém umístění v ovládacím prvku. Pomocí této metody můžete určit, která položka v seznamu je vybrána, když uživatel klikne pravým tlačítkem myši na ListBoxpoložku . Umístění kurzoru lze určit a předat x do a y parametry IndexFromPoint metody k určení položky, na kterou uživatel klikl pravým tlačítkem myši. Potom můžete uživateli zobrazit místní nabídku, která poskytne úkoly a funkce na základě konkrétní položky.

Platí pro