ListBox.IndexFromPoint メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定した座標にある項目の 0 から始まるインデックス番号を返します。
オーバーロード
IndexFromPoint(Point) |
指定した座標にある項目の 0 から始まるインデックス番号を返します。 |
IndexFromPoint(Int32, Int32) |
指定した座標にある項目の 0 から始まるインデックス番号を返します。 |
IndexFromPoint(Point)
指定した座標にある項目の 0 から始まるインデックス番号を返します。
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
パラメーター
戻り値
指定した座標にある項目の 0 から始まるインデックス番号。一致する項目が見つからない場合は ListBox.NoMatches
を返します。
例
次のコード例では、コントロールにドロップする項目を含むコントロールを ListBox 使用してドラッグ アンド ドロップ操作を実行する方法を RichTextBox 示します。 フォームのコンストラクターは、 でドラッグ アンド ドロップ操作を実行できるように、 プロパティtrue
を に設定AllowDropしますRichTextBox。 この例では、 の イベントListBoxをMouseDown使用して、 メソッドを呼び出してドラッグ操作を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判断できます。 カーソルの位置を決定し、 メソッドの IndexFromPoint パラメーターにp
渡して、ユーザーがマウス を右クリックした項目を決定できます。 その後、ユーザーにショートカット メニューを表示して、特定の項目に基づいてタスクと機能を提供できます。
適用対象
IndexFromPoint(Int32, Int32)
指定した座標にある項目の 0 から始まるインデックス番号を返します。
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 座標。
戻り値
指定した座標にある項目の 0 から始まるインデックス番号。一致する項目が見つからない場合は ListBox.NoMatches
を返します。
例
次のコード例では、コントロールにドロップする項目を含むコントロールを ListBox 使用してドラッグ アンド ドロップ操作を実行する方法を RichTextBox 示します。 フォームのコンストラクターは、 でドラッグ アンド ドロップ操作を実行できるように、 プロパティtrue
を に設定AllowDropしますRichTextBox。 この例では、 の イベントListBoxをMouseDown使用して、 メソッドを呼び出してドラッグ操作を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判断できます。 カーソルの位置を決定し、 メソッドの パラメーターと y
パラメーターIndexFromPointにx
渡して、ユーザーがマウス を右クリックした項目を決定できます。 その後、ユーザーにショートカット メニューを表示して、特定の項目に基づいてタスクと機能を提供できます。
適用対象
.NET