Ich führe ein Haupt-WinForm mit den meisten UI-Elementen, und dann wird ein Add-Formular aufgerufen, wenn die Schaltfläche Hinzufügen ausgewählt wird. Es sollte eine Eingabe erhalten und nach der Annahme an WinForm zurücksenden.Klassenübergreifende Kommunikation
läuft Dieser Code, wenn Sie auf die Schaltfläche „Hinzufügen“ auf der Hauptklasse:
public void addButton_Click(object sender, EventArgs e)
{
AddView newadd = new AddView();
newadd.Show();
}
Dieser Code (auch in der Hauptklasse) auf eine Schaltfläche in der AddView Basis laufen soll:
public void AddDashObject(string dashName, string dashIdentifier, int dashFunction, string dashFunctionInfo, int dashVerbosity)
{
DashObject tmp = new DashObject("","",0,"",0);
tmp.DashName = dashName;
tmp.DashIdentifier = dashIdentifier;
tmp.DashFunction = dashFunction;
tmp.DashFunctionInfo = dashFunctionInfo;
tmp.DashVerbosity = dashVerbosity;
dashloaded.Add(tmp);
ReloadDashObjects();
}
Ich bin nicht wirklich sicher, wie man zwischen den Formen kommunizieren - ich kann einen Typ verwenden, der in der Hauptklasse erstellt wurde, und auch Methoden, aber ich bin mir ziemlich sicher, dass ich eine separate Instanz erstelle. Wie kann ich mit dem bestehenden kommunizieren?
MainView mnfrm = new MainView();
MainView.DashObject tmp = new MainView.DashObject("","",0,"",1); // Defaults
private void button1_Click(object sender, EventArgs e)
{
mnfrm.dashloaded.Add(tmp); // Add the default DashObject to MainView's currently loaded DashObjects
mnfrm.ReloadDashObjects(); // Reload the list
}
Nicht sicher, wie Sie weiter vorgehen - ein Ratschlag?
Soll das Add-Formular modal sein, also ist das Hauptformular "gesperrt" während Benutzereingaben im Formular hinzufügen, oder sollen sie parallel funktionieren? –
Senden Sie eine Referenz von MainForm an AddForm, und verwenden Sie die Referenz von MainForm dort. –
@ MattiasÅslund - bemerkte gerade meine versehentliche Verwendung einer nicht-modalen Funktion. Es sollte modal sein (und verwendet ShowDialog) – Quartzic