(republication d'un post sur mon ancien blog)
Dans les différentes documentations, il est indiqué que pour éviter d'effectuer des actions comme des accès à une base de données ou d'autres actions reposant sur des actions particulières, des listes, ... soit tout ce qui ne concerne pas un simple affichage, il faut utiliser la propriété DesignMode
if (this.designMode)
return;
// actions
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
Ceci fonctionne effectivement très bien tant que vous n'imbriquez pas des users controls l'un dans l'autre.
Effectivement, pour le contrôle imbriqué, la propriété "DesignMode" est à false que vous soyez à l'exécution en en train de faire du drag and drop dans votre designer.
Il existe une autre propriété très utile que nous pouvons utiliser de la même manière. Il s'agit de "LicenseManager.UsageMode". Lorsque sa valeur est à LicenseManagerUsage.DesignMode, c'est que nous sommes dans un designer, il ne faut dès lors pas effectuer des actions nécessitant des accès à une base de données etc
if ( LicenseManager.UsageMode == LicenseUsageMode.Designtime )
return;
// actions
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }