ListView.GetItemAt メソッド
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

Dim instance As ListView Dim x As Integer Dim y As Integer Dim returnValue As ListViewItem returnValue = instance.GetItemAt(x, y)
戻り値
指定した位置にある項目を表す ListViewItem。指定した位置に項目がない場合、メソッドは null 参照 (Visual Basic では Nothing) を返します。

GetItemAt メソッドを使用すると、ListView コントロールのクライアント領域内の特定の位置にある項目を確認できます。ユーザーがサブ項目をクリックまたは右クリックし (View プロパティが View.Details に設定されている場合)、さらにユーザーがマウスをクリックした時点のマウスの位置の座標に基づいて、クリックされたサブ項目を所有している項目を確認するときに、このメソッドを使用します。
![]() |
---|
FullRowSelect プロパティ値が false の場合、このメソッドは、指定された位置が親項目の領域内にある場合にだけ項目を返します (親項目は、コントロールが詳細モードになっているときに、最初の列に表示されます)。サブ項目の領域内の位置が指定された場合に、このメソッドを使用して項目を取得するには、FullRowSelect プロパティを true に設定する必要があります。また、HitTest メソッドを使用して、特定の位置にある項目に関する詳細情報を取得することもできます。 |
ListView 内でドラッグ アンド ドロップによって項目の位置を変更するには、GetItemAt メソッドではなく、ListViewInsertionMark.NearestIndex メソッドを使用することもできます。ListViewInsertionMark.NearestIndex メソッドは、マウス ポインタが置かれている位置に関係なく、最も近い項目を検索します。一方、GetItemAt メソッドは、指定された位置に項目がない場合、null 参照 (Visual Basic では Nothing) を返します。
![]() |
---|
ListViewInsertionMark クラスは、Windows XP および Windows Server 2003 でアプリケーションから Application.EnableVisualStyles メソッドを呼び出す場合にだけサポートされています。 |

PictureBox コントロールと ListView コントロールの使用方法を示すコード例を次に示します。PictureBox は、PictureBox.BorderStyle プロパティ (BorderStyle 列挙体を使用) と PictureBox.SizeMode プロパティ (PictureBoxSizeMode 列挙体を使用) を設定することにより初期化されます。ListView には、Samples ディレクトリからイメージが読み込まれます。ListView コントロールの MouseDown イベントを処理して項目が選択されているかどうかを判断する場合は、GetItemAt メソッドを使用します。項目が選択されている場合、その項目は、イベント ハンドラが PictureBox.Image プロパティを設定することにより表示されます。この例では、C:\documents and Settings\All Users\Documents\My Pictures\Sample Pictures ディレクトリに JPG ファイルが存在している必要があります。この例を実行するには、コードをフォームに貼り付けて、フォームのコンストラクタまたは Load メソッドで InitializePictureBox メソッドおよび PopulateListView メソッドを呼び出します。必ずすべてのイベントをイベント ハンドラに関連付けるようにしてください。
Private Sub PopulateListView() ListView1.Width = 270 ListView1.Location = New System.Drawing.Point(10, 10) ' Declare and construct the ColumnHeader objects. Dim header1, header2 As ColumnHeader header1 = New ColumnHeader header2 = New ColumnHeader ' Set the text, alignment and width for each column header. header1.Text = "File name" header1.TextAlign = HorizontalAlignment.Left header1.Width = 70 header2.TextAlign = HorizontalAlignment.Left header2.Text = "Location" header2.Width = 200 ' Add the headers to the ListView control. ListView1.Columns.Add(header1) ListView1.Columns.Add(header2) ' Populate the ListView.Items property. ' Set the directory to the sample picture directory. Dim dirInfo As New System.IO.DirectoryInfo _ ("C:\Documents and Settings\All Users" _ & "\Documents\My Pictures\Sample Pictures") Dim file As System.IO.FileInfo ' Get the .jpg files from the directory Dim files() As System.io.FileInfo = dirInfo.GetFiles("*.jpg") ' Add each file name and full name including path ' to the ListView. If Not (files Is Nothing) Then For Each file In files Dim item As New ListViewItem(file.Name) item.SubItems.Add(file.FullName) ListView1.Items.Add(item) Next End If End Sub Private Sub InitializePictureBox() PictureBox1 = New PictureBox ' Set the location and size of the PictureBox control. Me.PictureBox1.Location = New System.Drawing.Point(70, 120) Me.PictureBox1.Size = New System.Drawing.Size(140, 140) Me.PictureBox1.TabStop = False ' Set the SizeMode property to the StretchImage value. This ' will shrink or enlarge the image as needed to fit into ' the PictureBox. Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage ' Set the border style to a three-dimensional border. Me.PictureBox1.BorderStyle = BorderStyle.Fixed3D ' Add the PictureBox to the form. Me.Controls.Add(Me.PictureBox1) End Sub Private Sub ListView1_MouseDown(ByVal sender As Object, _ ByVal e As MouseEventArgs) Handles ListView1.MouseDown Dim selection As ListViewItem = ListView1.GetItemAt(e.X, e.Y) ' If the user selects an item in the ListView, display ' the image in the PictureBox. If Not (selection Is Nothing) Then PictureBox1.Image = System.Drawing.Image.FromFile _ (selection.SubItems(1).Text) End If End Sub
private void PopulateListView() { ListView1.Width = 270; ListView1.Location = new System.Drawing.Point(10, 10); // Declare and construct the ColumnHeader objects. ColumnHeader header1, header2; header1 = new ColumnHeader(); header2 = new ColumnHeader(); // Set the text, alignment and width for each column header. header1.Text = "File name"; header1.TextAlign = HorizontalAlignment.Left; header1.Width = 70; header2.TextAlign = HorizontalAlignment.Left; header2.Text = "Location"; header2.Width = 200; // Add the headers to the ListView control. ListView1.Columns.Add(header1); ListView1.Columns.Add(header2); // Populate the ListView.Items property. // Set the directory to the sample picture directory. System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo( "C:\\Documents and Settings\\All Users" + "\\Documents\\My Pictures\\Sample Pictures"); // Get the .jpg files from the directory System.IO.FileInfo[] files = dirInfo.GetFiles("*.jpg"); // Add each file name and full name including path // to the ListView. if (files != null) { foreach ( System.IO.FileInfo file in files ) { ListViewItem item = new ListViewItem(file.Name); item.SubItems.Add(file.FullName); ListView1.Items.Add(item); } } } private void InitializePictureBox() { PictureBox1 = new PictureBox(); // Set the location and size of the PictureBox control. this.PictureBox1.Location = new System.Drawing.Point(70, 120); this.PictureBox1.Size = new System.Drawing.Size(140, 140); this.PictureBox1.TabStop = false; // Set the SizeMode property to the StretchImage value. This // will shrink or enlarge the image as needed to fit into // the PictureBox. this.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; // Set the border style to a three-dimensional border. this.PictureBox1.BorderStyle = BorderStyle.Fixed3D; // Add the PictureBox to the form. this.Controls.Add(this.PictureBox1); } private void ListView1_MouseDown(object sender, MouseEventArgs e) { ListViewItem selection = ListView1.GetItemAt(e.X, e.Y); // If the user selects an item in the ListView, display // the image in the PictureBox. if (selection != null) { PictureBox1.Image = System.Drawing.Image.FromFile( selection.SubItems[1].Text); } }
private: void PopulateListView() { ListView1->Width = 270; ListView1->Location = System::Drawing::Point( 10, 10 ); // Declare and construct the ColumnHeader objects. ColumnHeader^ header1; ColumnHeader^ header2; header1 = gcnew ColumnHeader; header2 = gcnew ColumnHeader; // Set the text, alignment and width for each column header. header1->Text = "File name"; header1->TextAlign = HorizontalAlignment::Left; header1->Width = 70; header2->TextAlign = HorizontalAlignment::Left; header2->Text = "Location"; header2->Width = 200; // Add the headers to the ListView control. ListView1->Columns->Add( header1 ); ListView1->Columns->Add( header2 ); // Populate the ListView.Items property. // Set the directory to the sample picture directory. System::IO::DirectoryInfo^ dirInfo = gcnew System::IO::DirectoryInfo( "C:\\Documents and Settings\\All Users" "\\Documents\\My Pictures\\Sample Pictures" ); // Get the .jpg files from the directory array<System::IO::FileInfo^>^files = dirInfo->GetFiles( "*.jpg" ); // Add each file name and full name including path // to the ListView. if ( files != nullptr ) { System::Collections::IEnumerator^ myEnum = files->GetEnumerator(); while ( myEnum->MoveNext() ) { System::IO::FileInfo^ file = safe_cast<System::IO::FileInfo^>(myEnum->Current); ListViewItem^ item = gcnew ListViewItem( file->Name ); item->SubItems->Add( file->FullName ); ListView1->Items->Add( item ); } } } void InitializePictureBox() { PictureBox1 = gcnew PictureBox; // Set the location and size of the PictureBox control. this->PictureBox1->Location = System::Drawing::Point( 70, 120 ); this->PictureBox1->Size = System::Drawing::Size( 140, 140 ); this->PictureBox1->TabStop = false; // Set the SizeMode property to the StretchImage value. This // will shrink or enlarge the image as needed to fit into // the PictureBox. this->PictureBox1->SizeMode = PictureBoxSizeMode::StretchImage; // Set the border style to a three-dimensional border. this->PictureBox1->BorderStyle = BorderStyle::Fixed3D; // Add the PictureBox to the form. this->Controls->Add( this->PictureBox1 ); } void ListView1_MouseDown( Object^ /*sender*/, MouseEventArgs^ e ) { ListViewItem^ selection = ListView1->GetItemAt( e->X, e->Y ); // If the user selects an item in the ListView, display // the image in the PictureBox. if ( selection != nullptr ) { PictureBox1->Image = System::Drawing::Image::FromFile( selection->SubItems[ 1 ]->Text ); } }
private void PopulateListView() { listView1.set_Width(270); listView1.set_Location(new System.Drawing.Point(10, 10)); // Declare and construct the ColumnHeader objects. ColumnHeader header1, header2; header1 = new ColumnHeader(); header2 = new ColumnHeader(); // Set the text, alignment and width for each column header. header1.set_Text("File name"); header1.set_TextAlign(HorizontalAlignment.Left); header1.set_Width(70); header2.set_TextAlign(HorizontalAlignment.Left); header2.set_Text("Location"); header2.set_Width(200); // Add the headers to the ListView control. listView1.get_Columns().Add(header1); listView1.get_Columns().Add(header2); // Populate the ListView.Items property. // Set the directory to the sample picture directory. System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo("C:\\Documents and Settings\\All Users" + "\\Documents\\My Pictures\\Sample Pictures"); // Get the.jpg files from the directory System.IO.FileInfo files[] = dirInfo.GetFiles("*.jpg"); // Add each file name and full name including path // to the ListView. if (files != null) { for (int iCtr = 0; iCtr < files.length; iCtr++) { System.IO.FileInfo file = files[iCtr]; ListViewItem item = new ListViewItem(file.get_Name()); item.get_SubItems().Add(file.get_FullName()); listView1.get_Items().Add(item); } } } //PopulateListView private void InitializePictureBox() { pictureBox1 = new PictureBox(); // Set the location and size of the PictureBox control. this.pictureBox1.set_Location(new System.Drawing.Point(70, 120)); this.pictureBox1.set_Size(new System.Drawing.Size(140, 140)); this.pictureBox1.set_TabStop(false); // Set the SizeMode property to the StretchImage value. This // will shrink or enlarge the image as needed to fit into // the PictureBox. this.pictureBox1.set_SizeMode(PictureBoxSizeMode.StretchImage); // Set the border style to a three-dimensional border. this.pictureBox1.set_BorderStyle(BorderStyle.Fixed3D); // Add the PictureBox to the form. this.get_Controls().Add(this.pictureBox1); } //InitializePictureBox private void listView1_MouseDown(Object sender, MouseEventArgs e) { ListViewItem selection = listView1.GetItemAt(e.get_X(), e.get_Y()); // If the user selects an item in the ListView, display // the image in the PictureBox. if (selection != null) { pictureBox1.set_Image(System.Drawing.Image.FromFile( selection.get_SubItems().get_Item(1).get_Text())); } } //listView1_MouseDown

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ListView クラス
ListView メンバ
System.Windows.Forms 名前空間
PointToScreen
PointToClient
ListViewInsertionMark
ListViewItem
Application.EnableVisualStyles
その他の技術情報
Windows フォームの座標
Weblioに収録されているすべての辞書からListView.GetItemAt メソッドを検索する場合は、下記のリンクをクリックしてください。

- ListView.GetItemAt メソッドのページへのリンク