Laden...

Close-Befehl wird nicht gefunden

Erstellt von Gerri3d vor 6 Jahren Letzter Beitrag vor 6 Jahren 2.567 Views
G
Gerri3d Themenstarter:in
57 Beiträge seit 2017
vor 6 Jahren
Close-Befehl wird nicht gefunden

Hallo, ich schreibe an einem WindowsForms Projekt mit C#. Nun habe ich eine Klasse für Berechnungen gebaut und will Messageboxes verwenden können.

Es scheint zu klappen, nur das Close() macht mir noch Probleme.

Die Form heißt Form1.cs
in Calcualtion.cs soll nun ein MsgBox Dialog abgearbeitet werden:


            if (CircleDataTmp.asm == assembly.NONE)
            {              
                string msg = "Für mindestens einen Durchmesser wurde keine Bauteiltype gefunden.";
                string caption = "Hinweis";
                MessageBoxButtons button = MessageBoxButtons.OK;
                DialogResult result = MessageBox.Show(msg, caption, button);
                if (result == DialogResult.OK)
                {
                    ; // do your stuff
                    this.Close();
                }
            }

Das Problem ist bei this.Close();

wie aknn man das anpassen?

Fehlermeldung:
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler CS1061 "Calculation" enthält keine Definition für "Close", und es konnte keine Close-Erweiterungsmethode gefunden werden, die ein erstes Argument vom Typ "Calculation" akzeptiert (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis). CSgeneratorWin D:\igm\dxf\Tool\CSgeneratorWin\CSgeneratorWin\CSgeneratorWin\Calculation.cs 490 Aktiv

H
523 Beiträge seit 2008
vor 6 Jahren

Die Klasse Calcualtion hat keine Methode Close(). Was soll this.Close() denn Deiner Meinung nach machen?

16.841 Beiträge seit 2008
vor 6 Jahren

Das Vorhaben riecht absolut nach einer Verletzung der Schichtenverantwortlichkeiten.
Eine Klasse für Business Logik wie Berechnungen sollte niemals auf UI Elemente zugreifen. Niemals.

[Artikel] Drei-Schichten-Architektur

G
Gerri3d Themenstarter:in
57 Beiträge seit 2017
vor 6 Jahren

Danke, tatsächlich habe ich 3 Klasse.
Eine für Ordner/Verzeichnis/ Dateiverwaltung
Eine die Form
Eine für Berechnungen.

Wie implementiere ich nun eine Schnittstelle, wenn bei der Berechnung zB Fehler erkannt wurden.
Wird die Berechnungen Klasse in der Form Klasse aufgerufen?

Augenblicklich laufen beide Klassen in der Form zusammen bzw wird eine Instanz jeweils erzeugt.

16.841 Beiträge seit 2008
vor 6 Jahren

Entweder durch entsprechende Rückgaben, Exception oder Events.
Kommt halt auf die Gesamtsituation an. Hört sich hier nach einem Abbruch an, daher vermutlich eher eine Exception.

Aber sicherlich nicht mit UI-Logik in der Business Logik. 😉