Wątek przeniesiony 2014-12-15 10:35 z C# i .NET przez somekind.

Z dwóch form do jednej

2014-12-14 18:43
Mateusz1234
0

Witam. Chcę zrobić przesyłanie danych z dwóch form do jednej. Z jednej formy najpierw mi idą dane do drugiej ale tworząc trzecią formę nie wiem jak jej dane przekazać znów do drugiej.

Pierwsza forma zawiera coś takiego

        public string nick
        {
            get { return nick1; }
        }

Druga forma odbiera te dane i ma w sobie

        private Form1 f1;

        public Form2(Form1 f1)
        {
            this.f1 = f1;
}

Tutaj wszystko jest w porządku ale jak teraz zrobić z trzeciej formy znów do drugiej, po przecinku wpisując Form3 f3 wchodzi ale deklarując formę do tej pory miałem Form2 f2 = new Form2(this); Teraz po dodaniu następnej formy woła mi o drugi parametr. Możecie jakoś to wytłumaczyć jak dla większej ilości form przesyłać tak dane? Z góry dzięki

Pozostało 580 znaków

2014-12-14 18:52
0

A gdzie tworzysz tą trzecią formę?
Form3 też niech przyjmuje w konstruktorze Form1.

Pozostało 580 znaków

2014-12-14 19:10
1

Ja mam inna propozycje, zamiast robić powiązania miedzy formami i osadzać dane bezpośrednio na nich zrób sobie klasę np:

class DaneMateusza1234{
    public string Nick {get;set;}
//inne pola
}

wtedy w Form1 property w stylu:

string DaneMateusza1234 Dane;

i powiedzmy ze masz tam event, ktory pokazuje forme2, wtedy wszystkie dane przekazujesz do formy :

private button1_Click(object sender, EventArgs args){
...
form1.Dane = this.Dane;

albo przez konstruktor jak wolisz:

new Form2(this.Dane);

analogicznie przekazujesz je do Form3 i cały czas pracujesz na 1 obiekcie z danymi, modyfikacje w jednej formie są widoczne w innych.

Pozostało 580 znaków

2014-12-14 20:39
Mateusz1234
0

Rozumiem, że mam stworzyć plik .class? Nie bardzo znam się na obiektowości dlatego omijam takie wyjścia :/

Pozostało 580 znaków

2014-12-14 21:18
0

To proponuje się poznać, bo Forma to też klasa. Nie da się programować w C# bez znajomości OOP.

Pozostało 580 znaków

2014-12-14 22:21
Mateusz1234
0

Chociaż podpowiedz gdzie tą klasę zrobić, w Formie, która ma przekazywać informacje czy w tej, która pobiera?

Do tego stringu Dane zapisuje się to co chce się przekazać na inną formę?

Pozostało 580 znaków

2014-12-14 22:27
0

To znaczy klasę tworzysz najlepiej w oddzielnym pliku. Instancje klasy w pierwszej formię skąd uzupełniasz ją danymi, i przekazujesz pozostałym formom.

Do tego stringu Dane zapisuje się to co chce się przekazać na inną formę?

Tak

Pozostało 580 znaków

2014-12-14 23:22
Mateusz1234
0

Jakoś to mi się udało zrobić, lecz nie działa. W formie 2 wybieram dane jakie chce przekazać, buttonem przekazuje je i po przekazaniu sprawdzam czy zostały przekazane, wszystko jest okej ale jeżeli chce odczytać je z pierwszej formy to są puste.

Klasa wygląda tak

    class Dane
    {
        public string miejsce { get; set; }
        public string potwor { get; set; }
    }

I w formie przekazującej robię Dane d = new Dane(); d.miejsce = combobox... z d.potwor to samo. Nie rozumiem tylko linijki, w której kolega napisał form1.Dane = this.Dane

Możecie powiedzieć co robię nie tak?

Pozostało 580 znaków

2014-12-14 23:44
1

Za każdym razem kiedy używasz operatora new tworzysz nowy obiekt, więc nic dziwnego że są puste.
Ogarnij jakiś kurs programowania.

Pozostało 580 znaków

2014-12-15 10:00
Mateusz1234
0

No tak a nie pisząc new jest błąd "Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu".

Pozostało 580 znaków

2014-12-15 10:37
4

Zacznij od kursu podstaw programowania. Jak rok popiszesz w konsoli, to potem weź się za okienka.
Jak na razie próbujesz posłać rakietę w kosmos nie wiedząc na czym polega grawitacja.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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