Hat jemand eine nützliche Lösung für das DesignMode-Problem bei der Entwicklung von Steuerelementen gefunden?
Das Problem ist, dass DesignMode nur für die erste Ebene funktioniert, wenn Sie Steuerelemente verschachteln. Die zweite und untere Ebene von DesignMode gibt immer FALSE zurück.
Der Standard-Hack bestand darin, den Namen des laufenden Prozesses zu überprüfen. Wenn es sich um "DevEnv.EXE" handelt, muss es sich um Studio handeln, damit DesignMode wirklich WAHR ist.
Das Problem dabei ist, dass der Prozessname nach der Registrierung und anderen seltsamen Teilen durchsucht wird. Das Endergebnis ist, dass der Benutzer möglicherweise nicht über die erforderlichen Rechte verfügt, um den Prozessnamen anzuzeigen. Außerdem ist diese seltsame Route sehr langsam. Wir mussten also zusätzliche Hacks stapeln, um einen Singleton zu verwenden. Wenn bei der Abfrage des Prozessnamens ein Fehler auftritt, wird davon ausgegangen, dass DesignMode FALSE ist.
Ein guter, sauberer Weg, um DesignMode zu bestimmen, ist in Ordnung. Es wäre sogar noch besser, Microsoft dazu zu bringen, das Problem intern im Framework zu beheben!