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

[C#] - Ustawianie RadioBoxów

tiger1990 19 Paź 2012 20:05 741 9
  • #1 19 Paź 2012 20:05
    tiger1990
    Poziom 12  

    Hej,

    Mam problem z ustawieniem radioBoxów a mianowicie:
    mam formatkę na której mam 2 pozycje - Płeć ( Kobieta Mężczyzna)
    oraz Aktywny (Tak, Nie )

    Razem są to 4 radio boxy - które obsługuje ręcznie tzn jeżeli klikniemy w Kobieta to mężczyzna stanie się odznaczony.

    Mój problem polega na tym, że chciałbym mieć 2 grupy radioBoxów ( dla Płci oraz dla Aktywny) w chwili obecnej jest tak, że jak mam np zaznaczoną pozycje 'Tak' w Aktywnych i nacisne w Płci (Kobieta) to odznaczy mi się w Aktywnych Tak - mimo iż w kodzie mam napisane zupełnie inaczej.

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    radioButton 1 i 2 są dla Płci a 3 i 4 dla Aktywne. Mimo tego wszystko działa jak by było jedną grupą.


    //Pytanie drugie:
    Mam formatkę i chciałbym aby po wyłączaniu zwracała mi stringa. Jak to zrobić? Przekazywać w konstruktorze do formatki stringa a potem go zmieniać? Zadziała to?

    0 9
  • #2 19 Paź 2012 20:20
    czytelnik987
    Poziom 9  

    Nie wiem za bardzo co kryje się pod nazwą formatka ale możesz najprościej np tak:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    0
  • #3 19 Paź 2012 20:23
    tiger1990
    Poziom 12  

    Formatka to nowe okno które odpalam okno.Show();

    0
  • Pomocny post
    #4 19 Paź 2012 20:26
    -rafal-
    Poziom 15  

    A co do RadioButtonów to po prostu umieść je na panelu (zakładka Containers) :)
    Kobieta/Mężczyzna na jednym panelu pozostałe dwa na drugi i będzie ok :)

    0
  • #5 19 Paź 2012 20:41
    tiger1990
    Poziom 12  

    @ rafał dzięki działa (:

    Jeszcze tylko to drugie pytanie i będe szczęśliwy :D

    0
  • #6 19 Paź 2012 20:43
    -rafal-
    Poziom 15  

    Chętnie spróbuję pomóc tylko nie do końca rozumiem co chcesz zrobić :(

    0
  • #7 19 Paź 2012 20:58
    czytelnik987
    Poziom 9  

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    0
  • #8 19 Paź 2012 20:59
    tiger1990
    Poziom 12  

    Mam formatkę na której jest button - naciskam guzik i włącza mi się nowe okno (mam już 2) i teraz chciałbym przy naciśnięciu guzika przekazywać do drugiego okna zmienną string która będzie zmieniana w drugim oknie - a gdy bede je zamykał będzie zwracana do okna 1.

    0
  • Pomocny post
    #9 19 Paź 2012 22:06
    marcinj12
    Poziom 40  

    Radiobuttony możesz też umieścić w GropuBox'ie.

    Co do drugiego pytania, to można to rozwiązać np. za pomocą właściwości w pierwszej formie i pokazywaniu okna metodą z przekazaniem instancji aktualnej formy:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    by potem w drugiej formie w dogodnym momencie (np. przy zdarzeniu zamykania formy) zmienić ją w ten sposób:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    String akurat jest zmienną niezmienną :) [immutable], gdzie przy każdej zmianie jest tworzona jego nowa kopia, więc przekazanie go do konstruktora nowej formy (przez ref oczywiście) nic nie da, bo zmienić jego wartość będziesz mógł tylko w konstruktorze tej formy.
    Zamiast tego - to opcja nr 2 - możesz utworzyć prostą klasę, którą przekażesz w konstruktorze:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    Wtedy, w drugiej formie, możesz ją śmiało przypisać do lokalnej zmiennej, a operując na niej, operujesz de facto na obiekcie pod tym samym adresem:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Last but not least, możesz tak trochę brzydko - z racji preferowania unikania zmiennych globalnych w programowaniu obiektowym - wykorzystać dodatkową statyczną klasę - taka istnieje przez cały czas działania programu i jest globalnie widoczna i dostępna:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    i zmiana w drugiej formie:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    W podobny sposób można stworzyć i wykorzystać Singleton, opis sobie daruję...
    Myślę że któraś z tych metod wystarczy (osobiście polecam drugą, bo łatwo ją rozbudować).

    0
  • #10 19 Paź 2012 22:52
    tiger1990
    Poziom 12  

    Wielkie dzięki.

    Pierwsza i druga metoda jest super :)

    0