Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#2

Re: [C#] Zweite Form nur einmal aufrufen

  Alt 27. Sep 2004, 17:10
eine "hübschere" Implementierung eines Resourcenschutzblockes ist das da:
Code:
using(aForm = new AddingUnit())

   if (aForm.ShowDialog(this) == DialogResult.OK)
   { 
     // noch nix da
   } 
}
In einem absoluen Notfall kannst du danach...
Code:
   GC.Collect();
   GC.WaitForPendingFinalizers();
... aufrufen. (Ist aber nicht "hübsch")

Oder ein abgeschwächtes Singleton (bei einem "richtigen" singleton springt dir der Designer auf's Dach )
Code:
class AddingUnit :Form
{
   private static AddingUnit fInstance;

   public static AddingUnit CreateInstance()
   {
      if (fInstance == null)
        fInstance = new AddingUnit();

      return fInstance;
   }
   ...
}
Nachtrag:
Das 2. verhindert aber nur Instanzen n > 1.
Code:
   aForm = AddingUnit.CreateInstance();
   if (aForm.ShowDialog(this) == DialogResult.OK)
   { 
     // noch nix da
   }
  Mit Zitat antworten Zitat