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# - Wywołanie funkcji z ChildForm

klidan 08 Sty 2014 15:28 996 4
  • #1 08 Sty 2014 15:28
    klidan
    Poziom 5  

    Mam dwa okna 'Form1' jako główne i 'Alarmy' jako ChildForm.

    Chciałbym wywołać funkcję, która znajduje się w 'Form1' z poziomu 'Alarmy'

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    W Form1 mam napisany kod:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Natomiast w drugim form 'Alarmy' mam kod:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Problem poega na tym, że mimo kompilacji po naciśnięciu 'button1' pojawia się błąd:

    Cytat:
    NullReferenceException was unhandled
    Object reference not set to an instance of an object.


    Powinno to być proste jak budowa cepa, a męczę się z ty już dwie godziny.
    Szukałem wszelakich rozwiązań w internecie.

    0 4
  • #2 08 Sty 2014 15:49
    braciszek0
    Poziom 12  

    W Form1 masz :

    Cytat:
    public void wywolanie(string dane)


    A z Form2 wysyłasz:
    Cytat:
    mainForm.wywolanie(phrase);


    Coś nie kumam. Do "wywołanie" potrzebujesz zmienną "dane" a wysyłasz zmienną "phrase".
    Dobrze zrozumiałem??

    0
  • #3 08 Sty 2014 15:59
    klidan
    Poziom 5  

    to akurat jest dobrze, obie zmienne są typu 'string'. Wydaje mi sie że przyczyną może być:

    Cytat:
    f2 = new Alarmy();
    f2.MdiParent = this;


    Nadal nie rozwiązuje to mojego problemu :/

    0
  • Pomocny post
    #4 08 Sty 2014 16:10
    marcinj12
    Poziom 40  

    Nie kombinuj z drugim konstruktorem, skoro otwierasz formę w formie MDI wystarczy:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    A jeżeli już chcesz, to powinieneś go wywołać tak:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    0
  • #5 08 Sty 2014 16:31
    klidan
    Poziom 5  

    Masz rację. Dzięki za pomoc, za dużo kombinowania.
    Widać jeszcze nie do końca wiem jak działa MDI.

    Wiedziałem że musi być jakiś prostszy sposób skoro używam MDI.

    Teraz mogę dalej robić SCADA.

    0