Wątek przeniesiony 2017-04-22 12:38 z C/C++ przez somekind.

PictureBox uchwyt

0

Cześć chciałem zrobić uchwyt do picturebox'a
więc.. PictureBox^ zdjecia = gcnew PictureBox();
zdjecia->Visible = false;
Niby kod dobry, a wszystkie pictureboxy nie znikają, co źle robię?

0

Które wszystkie?
Czy zdajesz sobie sprawę, że takie coś:

PictureBox^ zdjecia = gcnew PictureBox();
zdjecia->Visible = false;

Tworzy nową kontrolkę, którą zaraz potem „znika” zanim zostanie ona dodana do formy?

0
Azarien napisał(a):

Które wszystkie?
Czy zdajesz sobie sprawę, że takie coś:

PictureBox^ zdjecia = gcnew PictureBox();
zdjecia->Visible = false;

Tworzy nową kontrolkę, którą zaraz potem „znika” zanim zostanie ona dodana do formy?

Chwila, uchwyt nie robi "podpięcia" pod wszystkie kontrolki z picturebox?
To jak bym mógł takie coś zrobić?

2
PictureBox^ zdjecia = gcnew PictureBox();

Chwila, uchwyt nie robi "podpięcia" pod wszystkie kontrolki z picturebox?

A jakim cudem?

Powyższy kod to zarządzalny odpowiednik tego:

PictureBox* zdjecia = new PictureBox();

Czyli tworzysz zupełnie nowy obiekt.

To jak bym mógł takie coś zrobić?

Odwołaj się do istniejącej kontrolki, a nie twórz nową.

1

I masz mylne pojęcie na temat tego, czym jest uchwyt. I tu kłania się WinAPI. Najprościej mówiąc, uchwyt to jednoznaczny identyfikator kontrolki. W Windows to jest po prostu jakaś liczba. Nie ma dwóch kontrolek o takim samym uchwycie. W Windows cała komunikacja między systemem, a kontrolkami odbywa się za pośrednictwem właśnie tych uchwytów. Więcej przeczytasz wpisując w google coś w stylu: "WinAPI what is handle".

Jak chcesz w .NET przelecieć przez wszystkie kontrolki na formie (czy na innym kontenerze), to ta forma (czy inny kontener) ma taką właściwość jak Controls. To jest po prostu tablica wszystkich kontrolek znajdujących się bezpośrednio na danej formie (kontenerze).

1 użytkowników online, w tym zalogowanych: 0, gości: 1