Laden...

Status Verwaltung eines Forms

Erstellt von juLz vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.817 Views
J
juLz Themenstarter:in
51 Beiträge seit 2007
vor 15 Jahren
Status Verwaltung eines Forms

Hallo Comm,

Ich stehe gerade vor einer neu strukturierung meines Programmes und dabei vor einer eigentlich kleineren Hürde, die ich aber gerne elegant lösen möchte.
Und zwar geht es um die Verwaltung eines Buttons. Dieser Button ist so ziemlich das einzigste auf der GUI, er soll aber zu unterschiedlichen Zeipunkten verschiedene Funktionen haben. Wie stell ich es jetzt an, dass ich weiß, wann der Button die bestimmte Methode aufrufen soll ?

Ich hatte es erst folgendermaßen gelöst:

int status = 0;
public void Button1_Click()
{
   switch (status)
   {
      case 0:
         Methode();
         status = 1;
         break;
      case 1:
         Methode2();
         status = 2;
         break;
      ....
   }
}

Finde das aber sehr unschön und nicht sehr unübersichtlich. Was habt ihr für Vorschläge und Tipps ?

I
194 Beiträge seit 2005
vor 15 Jahren

ich denke, das state pattern wäre eine elegante lösung

S
341 Beiträge seit 2008
vor 15 Jahren

hmmm... ich weiß nicht genau in welche richtung das geht... aber ich hab so etwas ähnliches mal mit events onClick gemacht....
es kann aber auch sein das ich deine frage falsch verstehe... wenn ja dann sorry....

grüße

**Nur die Kenner können mit 10 Fingern bis 1023 zählen !!**
private int Main()
{
   string programmingSkills = getMySkills("programming")
   return = 1;
}
49.485 Beiträge seit 2005
vor 15 Jahren

Hallo juLz,

int status = 0;
public void Button1_Click()
{
     DeinMethodenArray [status++] ();
}

herbivore

J
juLz Themenstarter:in
51 Beiträge seit 2007
vor 15 Jahren

Danke für die Vorschläge.

DeinMethodenArray ? Das Initialisiere ich dann wie ?

Das funktioniert ja auch leider nur, wenn die Methoden immer eine gleiche reihenfolge haben, oder nicht ?

Was mache ich, wenn ich zum Beispiel ein paar Stellen überspringen will, zB wenn der User dazu keine Rechte hat ?!

Edit:
Da es nur 2 unterschiedliche Gruppen gibt bei den Usern, könnte ich 2 unterschiedliche Arrays nehmen oder in jeder Methode überprüfen ob der User die Rechte hat und die dann einfach mit einem return überspringen ?!?

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo juLz,

DeinMethodenArray ? Das Initialisiere ich dann wie ?

So zum Beispiel:


public delegate void MeinDelegat ();

...

   MeinDelegat [] md = new MeinDelegat [2];
   md[0] = MeineMethode1;
   md[1] = MeineMethode2;

Da es nur 2 unterschiedliche Gruppen gibt bei den Usern, könnte ich 2 unterschiedliche Arrays nehmen oder in jeder Methode überprüfen ob der User die Rechte hat und die dann einfach mit einem return überspringen ?!?

Dann solltest du das Array nur mit den Methoden füllen, die der Benutzer ausführen darf.

herbivore

J
juLz Themenstarter:in
51 Beiträge seit 2007
vor 15 Jahren

wow ok danke 🙂 das gefällt mir ! danke !