ListBox.IndexFromPoint 메서드

정의

지정된 좌표에 있는 항목의 0부터 시작하는 인덱스를 반환합니다.Returns the zero-based index of the item at the specified coordinates.

오버로드

IndexFromPoint(Point)

지정된 좌표에 있는 항목의 0부터 시작하는 인덱스를 반환합니다.Returns the zero-based index of the item at the specified coordinates.

IndexFromPoint(Int32, Int32)

지정된 좌표에 있는 항목의 0부터 시작하는 인덱스를 반환합니다.Returns the zero-based index of the item at the specified coordinates.

IndexFromPoint(Point)

지정된 좌표에 있는 항목의 0부터 시작하는 인덱스를 반환합니다.Returns the zero-based index of the item at the specified coordinates.

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 개체입니다.A Point object containing the coordinates used to obtain the item index.

반환

지정된 좌표에 있는 항목의 인덱스(0부터 시작)입니다. 일치하는 항목이 없으면 ListBox.NoMatches를 반환합니다.The zero-based index of the item found at the specified coordinates; returns ListBox.NoMatches if no match is found.

예제

다음 코드 예제에서는 RichTextBox 컨트롤에 놓을 항목을 포함 하는 ListBox 컨트롤을 사용 하 여 끌어서 놓기 작업을 수행 하는 방법을 보여 줍니다.The following code example demonstrates how to perform drag-and-drop operations using a ListBox control that contains items to drop into a RichTextBox control. 폼의 생성자는 AllowDrop 속성을 true로 설정 하 여 RichTextBox에서 끌어서 놓기 작업을 수행할 수 있도록 합니다.The constructor of the form sets the AllowDrop property to true to enable drag-and-drop operations to occur in the RichTextBox. 예제에서는 합니다 MouseDown 의 이벤트를 ListBox 호출 하 여 끌기 작업을 시작 하려면를 DoDragDrop 메서드.The example uses the MouseDown event of the ListBox to start the drag operation by calling the DoDragDrop method. 이 예제에서는 DragEnter 이벤트를 사용 하 여 RichTextBox로 끌어 온 항목이 유효한 데이터 형식 인지 여부를 확인 합니다.The example uses the DragEnter event to determine if an item being dragged into the RichTextBox is a valid data type. DragDrop 이벤트는 끌어 온 항목의 실제 놓기를 RichTextBox내의 현재 커서 위치에 있는 RichTextBox 컨트롤로 수행 합니다.The DragDrop event performs the actual dropping of a dragged item into the RichTextBox control at the current cursor location within the RichTextBox. 이 예에서는 DragDropDragEnter 이벤트가 예제에 정의 된 이벤트 처리기에 연결 되어 있어야 합니다.This example requires that the DragDrop and DragEnter events have been connected to the event handlers defined in the example.

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

설명

이 메서드를 사용 하 여 컨트롤 내의 특정 위치에 있는 항목을 확인할 수 있습니다.This method enables you to determine which item is located at a specific location within the control. 사용자가 ListBox를 마우스 오른쪽 단추로 클릭할 때이 메서드를 사용 하 여 목록에서 선택 되는 항목을 확인할 수 있습니다.You can use this method to determine which item within the list is selected when a user right-clicks the ListBox. 커서의 위치를 결정 하 고 전달할 수 있습니다는 p 의 매개 변수는 IndexFromPoint 사용자는 항목을 확인할 메서드를 통해 마우스 마우스 오른쪽 단추로 클릭 합니다.The location of the cursor can be determined and passed to the p parameter of the IndexFromPoint method to determine which item the user right-clicked the mouse over. 그런 다음 사용자에 게 바로 가기 메뉴를 표시 하 여 특정 항목을 기반으로 하는 작업 및 기능을 제공할 수 있습니다.You can then display a shortcut menu to the user to provide tasks and features based on the specific item.

IndexFromPoint(Int32, Int32)

지정된 좌표에 있는 항목의 0부터 시작하는 인덱스를 반환합니다.Returns the zero-based index of the item at the specified coordinates.

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 좌표입니다.The x-coordinate of the location to search.

y
Int32

검색할 위치의 Y 좌표입니다.The y-coordinate of the location to search.

반환

지정된 좌표에 있는 항목의 인덱스(0부터 시작)입니다. 일치하는 항목이 없으면 ListBox.NoMatches를 반환합니다.The zero-based index of the item found at the specified coordinates; returns ListBox.NoMatches if no match is found.

예제

다음 코드 예제에서는 RichTextBox 컨트롤에 놓을 항목을 포함 하는 ListBox 컨트롤을 사용 하 여 끌어서 놓기 작업을 수행 하는 방법을 보여 줍니다.The following code example demonstrates how to perform drag-and-drop operations using a ListBox control that contains items to drop into a RichTextBox control. 폼의 생성자는 AllowDrop 속성을 true로 설정 하 여 RichTextBox에서 끌어서 놓기 작업을 수행할 수 있도록 합니다.The constructor of the form sets the AllowDrop property to true to enable drag-and-drop operations to occur in the RichTextBox. 예제에서는 합니다 MouseDown 의 이벤트를 ListBox 호출 하 여 끌기 작업을 시작 하려면를 DoDragDrop 메서드.The example uses the MouseDown event of the ListBox to start the drag operation by calling the DoDragDrop method. 이 예제에서는 DragEnter 이벤트를 사용 하 여 RichTextBox로 끌어 온 항목이 유효한 데이터 형식 인지 여부를 확인 합니다.The example uses the DragEnter event to determine if an item being dragged into the RichTextBox is a valid data type. DragDrop 이벤트는 끌어 온 항목의 실제 놓기를 RichTextBox내의 현재 커서 위치에 있는 RichTextBox 컨트롤로 수행 합니다.The DragDrop event performs the actual dropping of a dragged item into the RichTextBox control at the current cursor location within the RichTextBox. 이 예에서는 DragDropDragEnter 이벤트가 예제에 정의 된 이벤트 처리기에 연결 되어 있어야 합니다.This example requires that the DragDrop and DragEnter events have been connected to the event handlers defined in the example.

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

설명

이 메서드를 사용 하 여 컨트롤 내의 특정 위치에 있는 항목을 확인할 수 있습니다.This method enables you to determine which item that is located at a specific location within the control. 사용자가 ListBox를 마우스 오른쪽 단추로 클릭할 때이 메서드를 사용 하 여 목록에서 선택 되는 항목을 확인할 수 있습니다.You can use this method to determine which item within the list is selected when a user right-clicks the ListBox. 커서의 위치를 확인 하 고 x에 전달 하 고 IndexFromPoint 메서드의 y 매개 변수를 전달 하 여 사용자가 마우스 오른쪽 단추로 클릭 한 항목을 확인할 수 있습니다.The location of the cursor can be determined and passed to the x and y parameters of the IndexFromPoint method to determine which item the user right-clicked the mouse over. 그런 다음 사용자에 게 바로 가기 메뉴를 표시 하 여 특정 항목을 기반으로 하는 작업 및 기능을 제공할 수 있습니다.You can then display a shortcut menu to the user to provide tasks and features based on the specific item.

적용 대상