Dostęp do kontrolki formularza z poziomu innego formularza

0

Mam następujący problem, z poziomu zdarzenia na innym formularzu chciałem dostać się do kontrolki (pole tekstowe) która jest na formularzu głównym. Jako ze jeden formularz jest właścicielem drugiego to do tego nadrzędnego dostaję się poprzez:

this->Owner

Jak jednak dostać się do kontrolki na formularzy głównym? próbuje przy pomocy

this->Owner->Controls

ale problemem jest posługiwanie się tą kolekcją, ponieważ w żaden sposób nie można z niej uzyskać uchwytu typu Control do żądanej kontrolki, a jedynie uchwyt typu Object.

Z góry dzieki za wszelką pomoc, pozdrawiam

0

To zrzutuj na Control to co dostajesz z Controls, chociaz to dziwne, ze tylko object...

0

próbowałem, nie da rady zrobic rzutowania

0

Jaki blad?

0

Przy konwersji niejawnej:

IEnumerator^ iterator = this->Owner->Controls->GetEnumerator();
Control^ kontrolka = iterator->Current;

error C2440: 'initializing' : cannot convert from 'System::Object ^' to 'System::Windows::Forms::Control ^'

Przy Próbie zrzutowania

Control^ kontrolka = (Control) iterator->Current;

error C2440: 'type cast' : cannot convert from 'System::Object ^' to 'System::Windows::Forms::Control'
Conversion requires a constructor or user-defined-conversion operator, which can't be used by const_cast or reinterpret_cast
error C2440: 'initializing' : cannot convert from 'System::Windows::Forms::Control' to 'System::Windows::Forms::Control ^'
0

A sprobuj

foreach(Control kontrolka in Owner.Controls) ... ```

Twoj kod powyzej to C++ .net, nie? Sadzilem, ze rozmawiamy caly czas o C# :) Ale foreach powinno zadzialac tak czy inaczej o ile sie nie myle.

//edit
Enumerator na poczatku ustawiony jest przed piewszym elementem. Sprobuj najpierw wykonac MoveNext, a dopiero pozniej rzutowanie Current.

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