Ich habe ein .NET CF-Programm (auf einem Smartphone) und ich habe eine Optionsseite dafür geschrieben.Lazy Load Forms
Auf der Optionen Seite habe ich Links zu 6 anderen Formen, die die tatsächlichen Optionen enthalten. Wenn das Hauptformular geladen wird, erstellt es die 6 Unterformulare und speichert sie in einer Liste, die zum Starten bereitsteht. Das Problem dabei ist die anfängliche Erstellungszeit, die zum Erstellen dieser Formulare erforderlich ist, wodurch die Haupteinstellungen langsam werden.
Was ich im Idealfall möchte, ist eine Möglichkeit, nur den Typ und die Parameter anzugeben, die zum Erstellen des Unterformulars beim Laden erforderlich sind, und dann das Formular bei Bedarf zu erstellen.
Hier ist Code-Schnipsel, wie es funktioniert zur Zeit:
Form_OnLoad():
AddSettingsOptions("General", new General());
AddSettingsOptions("Action Alert", new BaseAlertForm("Action Alert Settings", SystemManager.ActionAlert));
AddSettingsOptions("Comms Alert", new BaseAlertForm("Comms Alert Settings", SystemManager.CommsErrorAlert));
AddSettingsOptions("Advanced", new Advanced());
AddSettingsOptions("Diagnostics", new Diagnostics(_unitWatcher));
AddSettingsOptions("About", new About());
Das Formular wird im Tag-Abschnitt einer Liste (welche die Optionen Unter zeigt) gespeichert
private void AddSettingsOptions(String name, Form form)
{
listViewSettings.Items.Add(
new ListViewItem(
String.Format(" {0} {1}", listViewSettings.Items.Count + 1, name))
{
Tag = form
}
);
}
Wenn eine Option gedrückt wird, wird folgende Funktion aufgerufen, um das Formular
zu startenIch bin sicher, es gibt eine ziemlich einfache Möglichkeit, dies zu tun, ich kämpfe nur mit dem richtigen Weg. Dank
Dank, die sich wie ein verwenden müssen, sieht gute Möglichkeit; Ich kann es noch nicht funktionieren, aber ich bekomme den Fehler: "Nur Zuweisung, Aufruf, Inkrement, Dekrement und neue Objektausdrücke können als eine Anweisung verwendet werden" (Func) – Chris
Scheint zu funktionieren ohne (Func
Ich habe das von Grund auf ohne kompilieren geschrieben. Ich entfernte (Func