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#] usuwanie innych formatek i timerów z innej formatki

ty221 07 Maj 2012 19:15 832 2
  • #1 07 Maj 2012 19:15
    ty221
    Poziom 10  

    Proszę o podanie jak z innej formy (np. Form5) usunąć Form2. Metoda :

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    niestety nie działa.
    proszę również o poradę jak usunąć timera z Form1, np. Formą5 .
    Nie działa
    Kod: csharp
    Zaloguj się, aby zobaczyć kod
    .
    Timer dalej działa, a na dodatek wyskakuje błąd :
    ... Nie przygotowany na wystąpienie obiektu
    i co tu zrobić ?? :cry: :cry: :cry: :cry:

    0 2
  • Pomocny post
    #2 07 Maj 2012 20:17
    marcinj12
    Poziom 40  

    ty221 napisał:
    jak z innej formy (np. Form5) usunąć Form2
    Jeżeli to z poziomu Form5 tworzysz i pokazujesz Form2, wystarczy zadeklarować zmienną typu Form2 i wywołać na niej zwykłe polecenie Close():

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Jeżeli formę dodatkową tworzysz gdzie indziej, a gdzie indziej chcesz zamknąć, najprościej chyba przekazać do niej referencję (np. w konstruktorze w formy) i wtedy - zamykać jak wyżej.
    ty221 napisał:
    proszę również o poradę jak usunąć timera z Form1, np. Formą5 .
    A po co coś takiego robić?? W ogóle powinieneś używać stosowania metody Dispose() ręcznie - to jest metoda którą .NET sam sobie wywołuje kiedy niszczy obiekty - o ile nie piszesz własnej klasy wykorzystującej kod niezarządzany, nie ma potrzeby jej wywoływać.
    Zwykle korzystasz z niej przy klasach implementujących metodę Dispose(), jak klasach czytających/zapisujących do plików czy połączenia do bazy danych, a i wtedy wystarczy wykorzystać wyrażenie using { ... } które na końcu automatycznie tą metodę wywoła.
    Ręczne niszczenie timera jest złym pomysłem.
    Wystarczy go zatrzymać poleceniem Stop(), jeżeli chcesz to robić z innej formy, to można np napisać publiczną metodę zatrzymującą timer:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod
    i wywołać ją z poziomu innej formy:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    0
  • #3 07 Maj 2012 21:55
    ty221
    Poziom 10  

    Dziękuję za pomoc

    0