Поделиться через


ListBox.IndexFromPoint Метод

Определение

Возвращает отсчитываемый от нуля индекс элемента по указанным координатам.

Перегрузки

Имя Описание
IndexFromPoint(Point)

Возвращает отсчитываемый от нуля индекс элемента по указанным координатам.

IndexFromPoint(Int32, Int32)

Возвращает отсчитываемый от нуля индекс элемента по указанным координатам.

IndexFromPoint(Point)

Исходный код:
ListBox.cs
Исходный код:
ListBox.cs
Исходный код:
ListBox.cs
Исходный код:
ListBox.cs
Исходный код:
ListBox.cs

Возвращает отсчитываемый от нуля индекс элемента по указанным координатам.

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

Параметры

p
Point

Point Объект, содержащий координаты, используемые для получения индекса элемента.

Возвращаемое значение

Отсчитываемый от нуля индекс элемента, найденный по указанным координатам; возвращается ListBox.NoMatches , если совпадение не найдено.

Примеры

В следующем примере кода показано, как выполнять операции перетаскивания с помощью ListBox элемента управления, содержащего элементы для перетаскивания в RichTextBox элемент управления. Конструктор формы задает AllowDrop свойство для true включения операций перетаскивания в объекте RichTextBox. В примере используется MouseDown событие ListBox запуска операции перетаскивания путем вызова DoDragDrop метода. В примере используется DragEnter событие, чтобы определить, является ли элемент, перетаскиваемый в RichTextBox допустимый тип данных. Событие DragDrop выполняет фактическое удаление перетаскиваемого элемента в RichTextBox элемент управления в текущем расположении курсора в пределах.RichTextBox В этом примере требуется, чтобы DragDrop события DragEnter были подключены к обработчикам событий, определенным в примере.

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

Комментарии

Этот метод позволяет определить, какой элемент расположен в определенном расположении в элементе управления. Этот метод можно использовать для определения элемента в списке при щелчке правой кнопкой мыши ListBoxпользователя. Расположение курсора можно определить и передать pIndexFromPoint параметру метода, чтобы определить, какой элемент пользователь щелкнул правой кнопкой мыши. Затем можно отобразить контекстное меню пользователю, чтобы предоставить задачи и функции на основе определенного элемента.

Применяется к

IndexFromPoint(Int32, Int32)

Исходный код:
ListBox.cs
Исходный код:
ListBox.cs
Исходный код:
ListBox.cs
Исходный код:
ListBox.cs
Исходный код:
ListBox.cs

Возвращает отсчитываемый от нуля индекс элемента по указанным координатам.

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

Параметры

x
Int32

Координата x расположения для поиска.

y
Int32

Координата y расположения для поиска.

Возвращаемое значение

Отсчитываемый от нуля индекс элемента, найденный по указанным координатам; возвращается ListBox.NoMatches , если совпадение не найдено.

Примеры

В следующем примере кода показано, как выполнять операции перетаскивания с помощью ListBox элемента управления, содержащего элементы для перетаскивания в RichTextBox элемент управления. Конструктор формы задает AllowDrop свойство для true включения операций перетаскивания в объекте RichTextBox. В примере используется MouseDown событие ListBox запуска операции перетаскивания путем вызова DoDragDrop метода. В примере используется DragEnter событие, чтобы определить, является ли элемент, перетаскиваемый в RichTextBox допустимый тип данных. Событие DragDrop выполняет фактическое удаление перетаскиваемого элемента в RichTextBox элемент управления в текущем расположении курсора в пределах.RichTextBox В этом примере требуется, чтобы DragDrop события DragEnter были подключены к обработчикам событий, определенным в примере.

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

Комментарии

Этот метод позволяет определить, какой элемент находится в определенном расположении в элементе управления. Этот метод можно использовать для определения элемента в списке при щелчке правой кнопкой мыши ListBoxпользователя. Расположение курсора можно определить и передать x в метод и y параметры IndexFromPoint , чтобы определить, какой элемент пользователь щелкнул правой кнопкой мыши. Затем можно отобразить контекстное меню пользователю, чтобы предоставить задачи и функции на основе определенного элемента.

Применяется к