Forum: Mikrocontroller und Digitale Elektronik Endlosschleife Winform Formulare


von Endlosschleife Winform Formulare (Gast)


Lesenswert?

Hallo, habe folgendes Problem und ihr hoffentlich die Lösung:

Drei Formulare: form1, Parametrisierung, Test_Läuft, 
Ergebnis_bestätigen. Das Ziel, das ich verfolge, ist, dass nur noch die 
drei forms Parametrisierung, Test_Läuft, Ergebnis_bestätigen zyklisch 
aufgerufen werden. Problem: ich die Forms nicht so gesteuert, dass eins 
schließt, bevor das andere geöffnet wird.

Form 1 ist das Formular, das von Main Funktion aufgerufen wird.

Form 1 ruft Parametrisierung über Parametrisierung.ShowDialog() auf.
Dieses ruft dann Test_Läuft indirekt über eine Variable auf:


•
1
            if (cbxTest_starten.Checked == true)
2
            {
3
                GlobaleVariablen.Direkt_Start = true;
4
            }


Sobald Form Parametrisierung geschlossen wird (über this.close()), gilt 
das Event Form1.activated. Dort frage ich die variable ab und rufe 
Test_Läuft.showdialog() auf. Aber aus irgendeinem Grund öffnet 
test_läuft,während Parametrisierung noch offen ist. das Formular 
Parametrisierung zuckt nur einmal kurz, bleibt dann aber im Hintergrund 
geöffnet. Und das obwo0hl ich test_läuft indirekt aufrufe.

von Enlosschleiße Winform Formulare (Gast)


Lesenswert?

Endlosschleife Winform Formulare schrieb:
> Dieses ruft dann Test_Läuft indirekt über eine Variable auf:
>
> •

Event: parametrisieren.FormClosed

von Enlosschleiße Winform Formulare (Gast)


Lesenswert?

Wirklich niemand?

von Kauder Welsch (Gast)


Lesenswert?

Dein wirres Geschreibsel versteht hier niemand!

von STK500-Besitzer (Gast)


Lesenswert?

Würdest du bitte Quellcode posten?!

von Forist (Gast)


Lesenswert?

Vielleicht liegt es einfach daran, dass es in diesem Forum um Fragen 
rund um Mikrocontroller und sonstige digitale Elektronik geht.
Irgendwelche PC Desktop-Applikationen sind da "etwas" neben der Spur.

von Endlosschleife Winform Formulare (Gast)


Lesenswert?

1
  
2
3
4
5
6
// Form 1 ruft Form Parametrisierung auf
7
8
     private void btnINIT_Test_Click(object sender, EventArgs e)
9
        {
10
11
            
12
            Para.ShowDialog();
13
        }
14
15
// in Parametrisierung wird Variable gesetzt, sodass test_läuft direkt aufgerufen wird, wenn Form 1 Activated
16
      private void Parametrisierung_Click(object sender, EventArgs e)
17
        {
18
19
20
            if (cbxTest_starten.Checked == true)
21
            {
22
                GlobaleVariablen.Direkt_Start = true;
23
            }
24
        }
25
26
27
private void Form1_Activated(object sender, EventArgs e)
28
        {
29
            if (GlobaleVariablen.Direkt_Start == true) 
30
             TLäuft.ShowDialog();
31
            }

STK500-Besitzer schrieb:
> Würdest du bitte Quellcode posten?!

das sind mehrere 100 zeilen Code. das ist zu unübersichtlich. ich 
schneide die relevanten sachen raus.

von Endlosschleife Winform Formulare (Gast)


Lesenswert?

ist klar, was gemeint ist?

von STK500-Besitzer (Gast)


Lesenswert?

Endlosschleife Winform Formulare schrieb:
> das sind mehrere 100 zeilen Code. das ist zu unübersichtlich. ich
> schneide die relevanten sachen raus.

Wohl eher "Sachen, die alleine auch nicht funktionieren".

Beitrag #6373645 wurde von einem Moderator gelöscht.
von STK500-Besitzer (Gast)


Lesenswert?

Endlosschleife Winform Formulare schrieb im Beitrag #6373645:
> was soll das jetzt heißem? du hast keine ahnung trollst ein bisschen?

Ich wüsste zumindest in meinem Programm, wo ich mal suchen würde.
"Haltepunkte" im DEBUG-Modus setzen, Variableninhalte angucken.
Einzelschrittmodus ab Breakpoint...


PS: Trollen kann ich auch noch

von Endlosschleife Winform Formulare (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Ich wüsste zumindest in meinem Programm, wo ich mal suchen würde.
> "Haltepunkte" im DEBUG-Modus setzen, Variableninhalte angucken.
> Einzelschrittmodus ab Breakpoint...

hab ich gemacht. Die Werte der variablen stimmen alle.

Endlosschleife Winform Formulare schrieb:
> private void Parametrisierung_Click(object sender, EventArgs e)
>         {
>
>             if (cbxTest_starten.Checked == true)
>             {
>                 GlobaleVariablen.Direkt_Start = true;
>             }
>         }

das ist übrigens von mir falsch ausgeschnitten. Event formclosed()
1
        private void Parametrisierung_FormClosed(object sender, FormClosedEventArgs e)
2
        {
3
            if (cbxTest_starten.Checked == true)
4
            {
5
                GlobaleVariablen.Direkt_Start = true;
6
            }
7
        }

von Endlosschleife Winform Formulare (Gast)


Lesenswert?

Endlosschleife Winform Formulare schrieb:
> private void Parametrisierung_FormClosed(object sender,
> FormClosedEventArgs e)
>         {
>             if (cbxTest_starten.Checked == true)
>             {
>                 GlobaleVariablen.Direkt_Start = true;
>             }
>         }

also normalerweise wird der Wert erst gesetzt, wenn das Form geschlossen 
ist. Trzd ist es noch offen!

von Endlosschleife Winform Formulare (Gast)


Lesenswert?

Endlosschleife Winform Formulare schrieb:
> also normalerweise wird der Wert erst gesetzt, wenn das Form geschlossen
> ist. Trzd ist es noch offen!

also wenn ich einen Haltepunkt an den Anfang der Routine setze und in 
einzelschritten druchgehe, ist das Formular geöffnet. Ich schließe es 
mit this.close()

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Sag mal, hast du in den zehn anderen Threads die du vorher aufgemacht 
hast nicht behauptet dein Windows-Programm würde schon funktionieren?

Beitrag #6373822 wurde von einem Moderator gelöscht.
Beitrag #6373827 wurde von einem Moderator gelöscht.
von STK500-Besitzer (Gast)


Lesenswert?

Endlosschleife Winform Formulare schrieb im Beitrag #6373827:
> was heißt das?

Dass du die Dispose()-Methode aufrufen musst, damit der ganze "Dreck" 
("Garbage"), den dein Formular hinbterlassen hat, entsorgt werden kann.

von Endlosschleife Winform Formulare (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Dass du die Dispose()-Methode aufrufen musst, damit der ganze "Dreck"
> ("Garbage"), den dein Formular hinbterlassen hat, entsorgt werden kann.

Heißt das denn, dass keine Vraiblen übergeben werden?

von Endlosschleife Winform Formulare (Gast)


Lesenswert?

also wenn ich dispose nutze, verschwindet sie tatsächlich. Aber es 
ergibt direkt das nächste Problem:Ich kann das Formular nicht wieder 
aufrufen
System.ObjectDisposedException: "Cannot access a disposed object.

von STK500-Besitzer (Gast)


Lesenswert?

Endlosschleife Winform Formulare schrieb:
> System.ObjectDisposedException: "Cannot access a disposed object.

Du könntest scheinbar das Formular entweder schließen (und dann 
disposen) oder ausblenden (wie das geht, weiß ich niczht).
Es gibt aber statt "ShowDialog()" auch noch "Show()".
Einfach mal in deinem C#-Referenzhandbuch nachlesen.

von Endlosschleife Winform Formulare (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Show()".
> Einfach mal in deinem C#-Referenzhandbuch nachlesen.

Show () hat einige Nachteile, die ich umgehen möchte. Ich glaube, jeder 
der showdialog verwednet, macht dies um Show zu vermeiden.

STK500-Besitzer schrieb:
> ausblenden (wie das geht, weiß ich niczht).

das ist noch ein gedanke. aber dann müsste ich eine menge Events 
verändern. Außerdem: wenn es versteckt ist, kann ich es ja nicht wieder 
mit showdialog aufrufen. Das heißt, ich müsste hier wieder eine 
Laufvariable haben, di9e das koordiniert

von Endlosschleife Winform Formulare (Gast)


Lesenswert?

this.Visible = false;
oder
this.hide ()

funktionieren, sind aber meiner Meinung nach sehr kurzfristig gedacht.

von Endlosschleife Winform Formulare (Gast)


Lesenswert?

also ich brauche einen Mittelweg zwischen this.close () und dispose()

von STK500-Besitzer (Gast)


Lesenswert?

Endlosschleife Winform Formulare schrieb:
> also ich brauche einen Mittelweg zwischen this.close () und dispose()

Niemand außer dir scheint sowas zu brauchen.

Beitrag #6373898 wurde von einem Moderator gelöscht.
von Hallo? (Gast)


Lesenswert?

Endlosschleife Winform Formulare schrieb im Beitrag #6373898:
> STK500-Besitzer schrieb:
>> Niemand außer dir scheint sowas zu brauchen.
>
> da du das mit so einer überheblichkeit sagst: this.close funktioniert
> nicht, bei dispose lässt sich das Formular nicht nochmal öffnen. Die
> Lösung verstecken kann kein Ersatz sein

Hallo geht's noch? Du bist überheblich. Merkte was?

Beitrag #6373912 wurde von einem Moderator gelöscht.
von STK500-Besitzer (Gast)


Lesenswert?

Endlosschleife Winform Formulare schrieb im Beitrag #6373912:
> ich bitte um eine Lösung.

Wie wäre es, wenn du dir eine andere (Freizeit-)Beschäftigung suchst?

> Oder vllt eine Bergründung, warum ich  mich zwischen zwei Extremen quälen
> muss

Andere kommen auch mit dem aktuellen Zustand zurecht.

Was ist so schwer an einem "FormKLasseXYZ FormXYZ  = new 
FormKLasseXYZ(...);"
zusammen mit einem "FormXYZ.Dispose()?"
Wenn allerdings DEIN Programm so umständlich gebaut ist, dass du sowas 
nicht einbauen kannst, brauchst du mehr als eine einfache Lösung.

Beitrag #6373944 wurde von einem Moderator gelöscht.
von Endlosschleife Winform Formulare (Gast)


Lesenswert?

also deine Logik: nur weil andere es nicht brauchen (wo auch immer du 
deine Weisheit her hast), programmiere ich scheiße?

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Glaubst du wirklich dass dir mehr Leute antworten wenn du ständig neue 
Threads auf machst, jegliches Lernen verweigerst und die Leute dann 
beschimpfst?

Es ist ja jetzt schon so, dass du bewusst in die Irre geführt wirst weil 
du dir hier so viele Freunde gemacht hast. Da hilft es auch nichts, dass 
die Moderatoren, aus welchen Gründen auch immer, die Hand über dich 
halten.

Nach deinem typischen Wochenend-Amoklauf im Forum wirst du morgen immer 
noch mit deinem Müll-Code da stehen und hast hier noch mehr Erde 
verbrannt.

von Endlosschleife Winform Formulare (Gast)


Lesenswert?

Hannes J. schrieb:
> Es ist ja jetzt schon so, dass du bewusst in die Irre geführt wirst weil
> du dir hier so viele Freunde gemacht hast.

Wieso in die Irre?

Also ehrlich. Ich weiß nicht wovon du sprichst. Dies ist mein erster 
thread.

von Endlosschleife Winform Formulare (Gast)


Lesenswert?

ich weiß auch nicht, warum man sich angegriffen fühlen soll. Weil man 
kontrovers diskutiert?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.