Elektroda.pl
Elektroda.pl
X
Relpol
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C# - Interfejs i przekazywanie paremtrów do form

nerx2 21 Mar 2014 22:22 912 3
  • #1 21 Mar 2014 22:22
    nerx2
    Poziom 11  

    Witam, mam pewien problem i na przykładzie wytłumaczę o co chodzi.

    Powiedzmy, że mamy trzy formy - Form1, Form2, Form3
    Z formy1 pierwsze właczam formę drugę i przekazuję sobię jakieś dane na nią, ti przekazuję sobie tekst z label.

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Ale teraz chciałbym zapisać tą wartość też z label10, ale do innej formy, do tej którą otwieram.

    Kod: csharp
    Zaloguj się, aby zobaczyć kod



    Mam dwie różne formatki Form1 i Form3 i chcę pobrać do nich dane z Form2 i jak to zrobić, by nie tworzyć dwóch takich samych formatek? Poczytałem trochę i dowiedziałem się, że muszę użyć interfejsu, ale nigdy nie używałem go i znam go tylko z teorii i nie wiem jak to połączyć z moim przykładem.

    Znalazłem coś co chyba powinno mnie zainteresować, ale nie wiem jak się odnieść z tym do mojego problemu.

    ----

    You could use generics and an interface to accomplish this without vs2010 and .net 2.0.

    The interface would be something like
    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Usage would be:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    Your forms will have to implement the interface:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    0 3
  • Relpol
  • Pomocny post
    #2 22 Mar 2014 10:44
    wiesniak
    Poziom 31  

    Użycie interfejsu jest proste. Najpierw definiujesz interfejs, przykładowo:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    Implementacja interfejsu wymaga więc właściwości o nazwie MagicLabel typu string, posiadającej zarówno getter jak i setter.

    Teraz używamy interfejsu w Form2:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    Jak widać, zamiast wprost zdefiniowanej klasy przekazujemy interfejs, a następnie z niego korzystamy.

    Na koniec musimy nasz interfejs zaimplementować na formach Form1 i Form3:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    0
  • Relpol
  • #3 22 Mar 2014 13:00
    nerx2
    Poziom 11  

    Dzięki bardzo! Przetestuję to dopiero w poniedziałek, ale takie pytanko jeszcze. By wywołać interfejs w form2 dopiero po kliknięciu buttona, to tak to będzie wyglądać?

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    I w tym przykładzie labelABC.Text jest kontrolką form2? A odwrotnie zadziała?
    Bo chcę przykładowo jakiejś kontrolce label z form1, przypisać wartość z form2 po kliknęciu buttona. Czyli powinno chyba tak: (?)

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    0
  • #4 22 Mar 2014 13:06
    wiesniak
    Poziom 31  

    1. Dokładnie tak.
    2. labelABC jest kontrolką, tak.
    3. Tak, zadziała przypisanie do interfejsu.

    0