Comment détecter l'heure de conception dans un projet de bibliothèque de contrôles VS.NET 2003

StackOverflow https://stackoverflow.com/questions/144898

  •  02-07-2019
  •  | 
  •  

Question

Le code ci-dessous ne fonctionne pas comme prévu pour détecter s'il est en mode conception (VS.Net 2003 - Bibliothèque de contrôles):

if (this.Site! = null & this.Site.DesignMode == true)
{
  // Mode Création
}
sinon
{
  // run-time
}

Il est utilisé dans un contrôle utilisateur complexe, dérivé d'un autre contrôle utilisateur et incluant d'autres contrôles utilisateur.
Existe-t-il un autre moyen de détecter l'heure de conception dans VS.NET 2003 ou quel est le problème avec le code ci-dessus?

Était-ce utile?

La solution

DesignMode ne fonctionnera pas à l'intérieur d'un constructeur. Certaines alternatives (ne savent pas si elles fonctionnent en 1.1) sont

if (System.ComponentModel.LicenseManager.UsageMode == System.ComponentModel.LicenseUsageMode.Designtime)

ou

appelez GetService (typeof (IDesignerHost)) et voyez s'il renvoie quelque chose.

J'ai eu plus de chance avec la première option.

Autres conseils

Je suppose que vous pouvez utiliser HttpContext.Current == null comme décrit à l'adresse http: / /west-wind.com/weblog/posts/189.aspx

Dans .Net 2.0, Control.DesignMode ( http://msdn.microsoft.com/en-us/library/system.web.ui.control.designmode.aspx ). Cependant, je suppose que vous avez de bonnes raisons de rester sur VS 2003, alors la mise à niveau peut ne pas être une option pour vous.

Mettre à jour Si vous utilisez Winforms, Component.DesignMode ( http://msdn.microsoft.com/en-us/library/system.componentmodel.component.designmode.aspx ) est le bon moyen de vérifier. Toutefois, si this.Site.DesignMode ne fonctionne pas correctement, Component.DesignMode risque de ne pas fonctionner aussi bien, car il effectue exactement le contrôle que vous effectuez (Site! = Null & Site; Design.DesignMode).

Cela risque d'être long, mais êtes-vous sûr que votre contrôle de base ne remplace pas la propriété Site?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top