• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przesyłanie wartości z klasy form do innej klasy form

VPS Starter Arubacloud
0 głosów
1,317 wizyt
pytanie zadane 28 lipca 2015 w C# przez marcin02 Nowicjusz (140 p.)

Witam. Chciałbym przesłać pole int do pola int w innej klasie Form, która będzie wywołana (mam nadzieje, że poprawnie się wyrażam) dopiero później.

 

public partial class EkranStartowy : Form
{
      (...)

       private void button1_Click(object sender, EventArgs e)
        {
            
            EdytujStan es = new EdytujStan();
            es.ID = zalogowanyID;

            OknoGlowneForm og = new OknoGlowneForm();
            og.Login = imie;
            og.Show();
            this.Hide();
            
        }
 public partial class OknoGlowneForm : Form
    {
        public OknoGlowneForm()
        {
            InitializeComponent();
                       
        }

        private string login;
       
        public string Login
        {
            get { return login; }
            set { login = value; }
        }    
   }

 

Klasa EdytujStan ma tak samo zrobioną właściwość do przypisywania do prywatnego pola lecz wartosc nie jest przesyłana. Sprawdziłem i wiem, że ma to związek z tym, że nie wywołuje obiektu czyli nie ma es.Show(); (albo jakiegoś innego wywołania - proszę mnie poprawić jeśli używam złej terminologii) lecz co w przypadku jeśli nie chce go wywoływać w tym momencie a wartość, której potrzebuje znajduje się akurat w tej klasie. Mógłbym podawać ją sobie z jednej do drugiej aż w końcu trafi tam gdzie ma być ale na pewno istnieje jakieś bardziej elegancie rozwiązania.

1 odpowiedź

0 głosów
odpowiedź 29 lipca 2015 przez jarek9244 Gaduła (3,430 p.)

Aby przesłać wartość z Ekran Startowy do Okno Główne musisz zrobić następującą rzecz

1. Ustaw wartość zmiennej dla lini 8 w pierwszym pliku

EdytujStan es = new EdytujStan(i tu wprowadz nazwę zmiennej);

2. Ustaw zmienną w Okno główne w drugim pliku

public OknoGłówneForm(typ zmiennej np. string albo int a później podaj nazwe zmiennej)

 

Nie potrzebujesz już tych getów i setów wszystko będzie działało bez nich

Wartość będzie automatycznie przesyłana podczas inicjowania. Jeżeli chcesz przesłać więcej zmiennych użyj przecinków do ich rozdzielenia

Mam nadzieje że pomogłemsmiley

komentarz 29 lipca 2015 przez marcin02 Nowicjusz (140 p.)
Nie chce przesyłać przez konstruktor bo jak go zmienie to zawsze będe musiał przesyłać mu jakąś zmienną jak będe wywoływać obiekt a tego nie chce. Czyli tak łopatlogicznie to mam ekran logowania ktory znika po zalogowaniu, pojawia sie okno glowne tam z menu wybieram sobie okno z dostawami i tam jest przycisk który wyświetla mi okienko, które powstało z klasy EdytujStan. Wiec sprawa wyglada by z ekranu logowania wysłać wartosc ale nie wywolywac EdytujStan bo to bedzie pozniej.
komentarz 30 lipca 2015 przez Marek Węglarz Nowicjusz (220 p.)

No to przeciąż konstruktor.

class TwojaKlasa
{
	public int zmienna {get; private set;}
	
	public TwojaKlasa():this(0)
	{
	}
	public TwojaKlasa(int zmiennaKost)
	{
		this.zmienna=zmiennaKost;
	}
}

 

Podobne pytania

0 głosów
1 odpowiedź 202 wizyt
pytanie zadane 6 października 2018 w C# przez DreaM Użytkownik (840 p.)
+2 głosów
0 odpowiedzi 263 wizyt
pytanie zadane 13 kwietnia 2017 w C# przez liledusty Obywatel (1,430 p.)
0 głosów
0 odpowiedzi 378 wizyt
pytanie zadane 11 listopada 2020 w C i C++ przez mikilorix1029 Nowicjusz (120 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...