[Visual C++]listView i MouseHover

Piszę funkcję która wyświetla obrazek w pełnych wymiarach po “hover” myszą na obiekt w listView. Interesują mnie na razie jedna rzecz, bo nie mogę tego znaleźć. Skad wziąć index elementu zaznaczonego przez Mouse_Hover ? Bo to nie jest chyba selected item z racji tego, że nie jest zaznaczany, jedynie sprawdzany czas na danym elemencie. Muszę jakoś zdobyć id tego elementu (elmenty są zarówno w listview jak i w bazie imagelist), bo potrzebny mi jego rozmiar.

Wrzucę całą metodę jakby ktoś chciał się zorientować w kodzie, ale od razu mówię, że jest tu mnóstwo śmieci, bo dopiero to składam, a raczej staram się :wink:

private: System::Void listView1_ItemMouseHover(System::Object^ sender, System::Windows::Forms::ListViewItemMouseHoverEventArgs^ e) 

			 {

				 try

				 {

			     PictureBox ^pict = gcnew System::Windows::Forms::PictureBox();

				 Form ^ form = gcnew System::Windows::Forms::Form();				 

				 form->FormBorderStyle = ::FormBorderStyle::None;

				 int x = imageList1->Images[listView1->HoverSelection::get()]->Width;

				 int y = imageList1->Images[listView1->HoverSelection::get()]->Height;

				 int z = listView1->LargeImageList->Images->

				 MessageBox::Show(x.ToString() + " " + y.ToString() + " " + z.ToString()); 

				 //form->Size = System::Drawing::Size(imageList1->Images[listView1->HoverSelection::get()]->Width , imageList1->Images[listView1->HoverSelection::get()]->Height );

				 form->SetAutoSizeMode(::AutoSizeMode::GrowAndShrink); //form->Size = System::Drawing::Size(500,500);

				 form->Controls->Add(pict);

				 	//pict->Image = Bitmap::FromFile(openFileDialog1->FileNames[1]);			

				 pict->Location = System::Drawing::Point(0, 0);

				  pict->Size = System::Drawing::Size(500,500);


				 //pict->Size = System::Drawing::Size(imageList1->Images[listView1->HoverSelection::get()]->Width, imageList1->Images[listView1->HoverSelection::get()]->Height);


				// pict->Image = Bitmap::FromFile(openFileDialog1->FileNames[1]);

				// pict->Image->FromFile(openFileDialog1->FileNames[1]);

				// form->Controls->Add(pict);

				// form->ShowDialog();

				// pict->Show();

				 //pict->Update();


				  form->Show();

				  pict->Image = Bitmap::FromFile(openFileDialog1->FileNames[1]);


				// if (listView1->OnMouseLeave(e) == true) {}

				 }

				 catch(Exception^ e)

				 {

					 MessageBox::Show(e->ToString());

				 }

			 }

Dodane 16.12.2010 (Cz) 18:26 – Ok, już zrobiłem :wink: Tu jest kod, jakby ktoś miał taki sam problem i nie wiedział jak :wink:

System::Windows::Forms::ListViewItem ^z = listView1->GetItemAt(::Cursor::Position.X,::Cursor::Position.Y);

int w = Convert::ToInt32(z);

Kod pobiera index elementu na podstawie położenia kursora, a w zawiera liczbowy numer tego indexu.