Znalazłem taką łamigłówkę i coś nie mogę tego rozwiązać.
Dotyczy komponentu pictureBox.
Do niego jest załadowany już jakiś plik graficzny.
Ten fakt jest przy zdarzeniu button_click
pictureBox1->Load(imageList1->Images->Keys[x]->ToString());
w imageList znajduje się ten obrazek, ale to nie jest istotne. Następnie jest zdarzenie pictureBox_MouseHover, czyli jak kursor będzie przez jakiś czas nad obiektem, czyli obrazkiem, wewnątrz:
MessageBox::Show(Convert::ToString(pictureBox1->Image->Size.Height + 150) + " " + Convert::ToString(pictureBox1->Image->Size.Width + 150));
// wersja 1 //pictureBox1->ClientSize = System::Drawing::Size(150, 150);
// wersja 2 //pictureBox1->ClientSize = System::Drawing::Size(pictureBox1->Image->Size.Height + 150, pictureBox1->Image->Size.Width + 150);
pictureBox1->Load(imageList1->Images->Keys[3]->ToString());
MessageBox to tylko taki “debugger” sprawdzający i wszystko jest w porządku. Zwraca wartość x i y obrazka powiększoną o 150 . Gdy użyję wersji pierwszej, czyli wymiarów ustawionych na sztywno to wszystko jest ok, obrazek po najechaniu myszką zmienia rozmiary do 150 x 150. Natomiast jak użyję drugiej wersji to nic się nie dzieje, mimo, że zawiera takie same wartości (nie takie same, ale powiększone o 150 tak by można było zobaczyć różnicę). Dlaczego tak jest ?
Z pictureBoxa w sumie korzystam pierwszy raz, więc może coś przeoczyłem czy coś, ale jakoś nie mogę tego rozgryźć jak obydwa przypadki zwracają tą samą wartość, a odpowiada mu tylko wersja “sztywna”.