J'exécute une ligne de code qui ne s'exécute pas dans le concepteur, ce qui provoque l'affichage de toutes les propriétés publiques de mon contrôle dans le concepteur. Pour cette raison, je ne peux plus voir aucun de mes formulaires utilisant ce contrôle dans Visual Studio Design View.C# - Code de bloc à exécuter dans le concepteur
La ligne de code en question appelle un projet de code dangereux qui effectue un peu de traitement d'image; le commentant rend la vue de conception revivre à la vie. Cependant, le code s'exécute parfaitement, donc je ne vois pas pourquoi le code échoue dans le concepteur. Ceci est le code qui est appelé:
/// <summary>
/// Performs a color adjustment on the source bitmap.
/// </summary>
/// <param name="source">The bitmap to be processed. This is changed by the
/// process action.</param>
/// <param name="redChange">change to the red value. Can be negative.</param>
/// <param name="greenChange">change to the green value. Can be negative.</param>
/// <param name="blueChange">change to the blue value. Can be negative.</param>
/// <returns></returns>
public static Bitmap ProcessColor(Bitmap source, int redChange, int greenChange, int blueChange)
{
sourceBitmap = source;
// lock the source bitmap
sourceBitmapData = getBitmapData(sourceBitmap, ref sourceWidth);
sourcepBase = (Byte*)sourceBitmapData.Scan0.ToPointer();
PixelData* pPixel;
for (int y = 0; y < source.Height; y++)
{
pPixel = (PixelData*)(sourcepBase + y * sourceWidth);
for (int x = 0; x < source.Width; x++)
{
int redVal = pPixel->red + redChange;
if (redVal <0) redVal = 0;
if (redVal > 255) redVal = 255;
pPixel->red = (byte)redVal;
int greenVal = pPixel->green + greenChange;
if (greenVal <0) greenVal = 0;
if (greenVal > 255) greenVal = 255;
pPixel->green = (byte)greenVal;
int blueVal = pPixel->blue + blueChange;
if (blueVal < 0) blueVal = 0;
if (blueVal > 255) blueVal = 255;
pPixel->blue = (byte)blueVal;
pPixel++;
}
}
sourceBitmap.UnlockBits(sourceBitmapData);
sourceBitmapData = null;
sourcepBase = null;
return source;
}
(Avec l'aimable autorisation de la Communauté OpenNETCF)
Mon projet n'est pas marqué comme dangereux, mais le projet que le code ci-dessus est en est marqué dangereux. Les deux projets doivent-ils être marqués comme dangereux?
Ou est-il possible de bloquer cette ligne de code dans le concepteur (je n'ai pas vraiment besoin de la sortie de ce code en mode design car il génère une version désactivée d'une image fournie image).
EDIT: Bloquer l'exécution du code ne résout pas le problème. Seul le commentaire de la ligne permet à la vue de conception de fonctionner. La présence de la ligne (même si elle est placée dans une instruction if [false == true]) amène le concepteur à afficher des erreurs au lieu du formulaire.
Il n'y a pas 'DesignMode' dans les FC pour autant que je peux voir. Ou est-ce dans une autre référence? – GenericTypeTea
Oui, merci. Manqué ça. Edited ma réponse. –
Je trouve: si (this.Site.DesignMode!) { // etc } Mais cela ne l'empêche pas la ligne de l'exécution du code – GenericTypeTea