Verhindern dass Designer Code aufruft
-
Hallo!
Ich habe ein kleines Problem mit dem WinForms Designer. Ich habe eine UserControl erstellt, die im Constructor von einer XML Datei einige Strings lädt. Wenn ich die Control auf eine Formular packe kommt im Designer eine Exception, die mir sagt, dass die XML Datei nicht existiert.
Gibt es irgend eine Möglichkeit dem Designer zu sagen, dass er diesen Code nicht aufrufen soll? Oder kann ich irgendwie den korrekten Pfad der Datei bei Design-Time angeben (im Moment sieht der Pfad so aus Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase + "\\Resources\\language.xml" - ich musste ihn so angeben, da das Ganze ein PocketPC Projekt ist und Application.StartupPath nicht existiert)?
-
Hello,
du kannst in deinem Control die Property "IsDesignMode" (o.ä.) überprüfen, ob dein Control gerade im Editor ausgeführt wird oder nicht. Ist das der Fall, so liest du die XML Datei nicht.
Wie klingt das?
-
Die Property gibt's leider nicht. Aber ich habe das ganze mittlerweile mit try catch gelöst. Trotzdem Danke!
Sollte noch jemand eine Idee haben wie ich es eleganter lösen könnte, nur heraus damit.
-
this.DesignMode
-
http://msdn2.microsoft.com/en-us/library/system.componentmodel.component.designmode
Scheinbar gibt's das im Compact Framework nicht. Aber machst du das Design nicht eh auf einem richtigen Computer? Dann kannst du mit bedingter Compilierung ohne Probleme das Verhalten im Designmodus einbauen.
-
Das Problem ist, dass VisualStudio mich nicht an die DesignMode property ran lässt wenn es ein PocketPC Projekt ist, da hilft auch bedingte Kompilierung nichts.