Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bug Application.Run

Sauvez moi la vie !

    19 juin 2011 à 17:49:53

    Bonjour à tous,
    J'espère que vous pourrez m'aider parce que ce bug m'inquiète pas mal.
    J'ai codé il y a de cela quelques mois un usercontrol pour mon application (en fonction du bouton sur lequel j'appuie un user control se charge). Tout marchait bien et tout à l'heure j'ai voulu essayer juste pour voir et ça ne marchait plus (j'ai avancé mon projet via de nouveaux user control depuis).

    Celui ci est très compliqué avec de nombreuses fonctions.
    Donc une fonction qui permet de stocker une petite animation dans un fichier xml.
    Je m'explique :
    le fichier xml comporte la position de 5 points à chaque instant pendant 10 secondes. L'utilisateur a la possibilité à chaque instant de choisir un des points et de changer sa position via d'autres fonctions (qui fonctionnaient toutes).

    Donc je clique sur créer, le panel_systeme(qui est par défaut par dessus mon canvas) qui est par défaut à false passe à true(la visibilité). après avoir rentré un nom, je valide.
    Voici les procédures dans la fonction valider:
    -Copier le fichier xml de base
    -Remplir le fichier xml avec les infos rentrées lors de la création (nom, position de départ)
    -Les afficher (avec le contenu de microsoft.powerpacks.ovalshape je crée 5 ronds que j'affiche sur mon image).
    -Enfin le panel_systeme.visible passe à false.


    Je suis passé à seven depuis la dernière fois ou ça marchait. Peut etre que powerpacks.ovalshape n'est pas compatible avec windows 7 ? J'en doute.(j'ai la version 3.0 que je viens de réinstaller pour tester, mais la version 3.0 est sortie en 2008 soit avant seven)
    Ce site propose une version 10.0 que je ne trouve pas sur le site de microsoft, normal ? [url]http://coolthingoftheday.blogspot.com/2009/09/microsoft-visual-basic-power-packs-100.html[/url] )
    En tout cas j'ai réinstallé la version 3.0, et un autre user control ou je m'en sers me montre que ça marche parfaitement.
    Le problème est donc ailleurs.


    Alors tout s'execute à priori normalement (j'ai mis un int h=0; à la dernière ligne avec un point d'arret et le déboggueur s'arrete bien). et mon try catch ne renvoie rien.


    Sauf qu'une fois l'exécution de la fonction terminée j'ai un message d'erreur sur mon Application.Run dans Program.cs. Note: Le panel n'est pas caché avant de planter.
    Voici l'erreur:

    Citation : c#

    L'exception System.ArgumentException n'a pas été gérée
    Message=Le paramètre n'est pas valide.
    Source=System.Drawing
    StackTrace:
    à System.Drawing.Graphics.GetHdc()
    à System.Drawing.BufferedGraphics.RenderInternal(HandleRef refTargetDC, BufferedGraphics buffer)
    à System.Drawing.BufferedGraphics.Render()
    à System.Windows.Forms.Control.WmPaint(Message& m)
    à System.Windows.Forms.Control.WndProc(Message& m)
    à System.Windows.Forms.Label.WndProc(Message& m)
    à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
    à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
    à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
    à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
    à System.Windows.Forms.Application.Run(Form mainForm)
    à BPM2011.Program.Main() dans C:\***\Program.cs:ligne 36
    à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
    à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    à System.Threading.ThreadHelper.ThreadStart()
    InnerException:




    On notera que lorsque je clique sur importer pour importer un ancien xml que j'avais créé (et donc qui marchait parfaitement) l'application plante avec un autre message d'erreur dans le catch cette fois:
    Je viens de lancer le programme sans passer par le déboggueur juste en cliquant sur le .exe et quand le message d'erreur apparait, je fais continuer(le panel.visible n'est pas repassé à false) et je clique sur le bouton pour enlever le panel et tout fonctionne parfaitement, tous mes ronds se sont bien affichés sur l'image je peux éditer leur trajectoire etc.
    Alors c'est un problème de mémoire ? trop de mémoire allouée ?

    Ce code marchait parfaitement avant, je ne vois pas d'ou cela peut provenir. Alors si vous pouviez m'aider ou au moins me donner des pistes pour corriger ce type d'erreur (peut etre que dans toute la programmation de mon logiciel ma façon de coder a été mauvaise ce qui cause ce problème). Depuis j'ai du rajouter quelques variables globales, sachant qu'il y a énormément de variables dans cet usercontrol ça peut avoir un lien?
    Aussi si vous aviez des conseils pour m'aider à comprendre ce genre de messages d'erreurs je suis preneur.

    M'aider à résoudre ce problème serait bien plus que de me sauver la vie, c'est la partie la plus importante de mon projet.



    Merci d'avance, r0seBa
    • Partager sur Facebook
    • Partager sur Twitter

    Bug Application.Run

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown