Forme Dispose() ou Close()
Je vais avoir 2 formes. À partir d'un formulaire que j'ai créé et illustré l'autre forme. C'est génial de travailler. Mais quand j'essaie de fermer ou Céder que la forme de la forme qui l'a créé-je obtenir de l'Exception suivante:
Exception : Valeur Dispose() ne peut pas être appelée tout en faisant CreateHandle(). Trace De La Pile : ======================== au Système.De Windows.Les formulaires.De contrôle.Dispose(Boolean disposing) au Système.De Windows.Les formulaires.De l'étiquette.Dispose(Boolean disposing) au Système.ComponentModel.Composante.Dispose() au Système.De Windows.Les formulaires.De contrôle.Dispose(Boolean disposing) au Système.De Windows.Les formulaires.ContainerControl.Dispose(Boolean disposing) au Système.De Windows.Les formulaires.Forme.Dispose(Boolean disposing) au Speedometer_Application.frmSpeedometer.Dispose(Boolean disposing)
Une idée????
Cela dépend de ce code a été utilisé pour montrer l'autre forme
OriginalL'auteur Jankhana | 2010-01-19
Vous devez vous connecter pour publier un commentaire.
L'erreur
Value Close() cannot be called while doing CreateHandle()
généralement ce qui arrive quand on essaie de fermer le formulaire dans le constructeur ou l'événement Load.Par exemple, le code suivant donne l'erreur:
La Solution:
Vous pouvez l'utiliser dans votre code.
Me.BeginInvoke(New MethodInvoker(AddressOf Close))
C'est la meilleure réponse: je ne savais pas que vous ne devriez Pas appeler Close() à la Charge de l'Événement (WinFrms)!
OriginalL'auteur Samy S.Rathore
il est difficile de dire quel est le problème à partir du code que vous avez posté.
Le code que vous avez posté devraient travailler (de la forme présentée avec Show() devrait être possible de fermer avec la méthode dispose ()).
La raison pourquoi il ne fonctionne pas est probablement quelque part dans le formulaire que vous essayer de s'en débarrasser. Lorsque vous appelez la méthode dispose () (selon le message d'erreur c'est ce qui se passe) sur un objet, cet objet va essayer de disposer de tous ses enfants et faire du nettoyage. C'est l'endroit à regarder pour l'erreur.
Ma suggestion est de commenter tous votre code dans le formulaire de objfrm (ou créer un nouveau formulaire VIDE) et voir si l'erreur se produit. Il ne devrait pas arriver. Puis commencer à ajouter un code commenté et voir si l'erreur se produit. Je parie que ce sera dans le code qui est appelé comme conséquence de la méthode dispose.
OriginalL'auteur user218447
Le code est comme suit:
frmMain c'est la Forme qui a une variable statique de la frmMyForm. que dans mon code où je veux l'utiliser je viens de vérifier si elle n'est pas nulle de le créer à l'aide d'une Instance statique et de donner le peoperty.
Lors de la fermeture du formulaire, j'ai le code suivant:
La Close_this appelle la Fermer() ou la méthode dispose ().
Mais lorsque j'appelle cette fonction-je obtenir de l'exception ci-dessus.
OriginalL'auteur Jankhana
Vous devez utiliser ShowDialog au lieu de Montrer c'est le problème. Spectacle à ne pas bloquer l'application et le code continue de fonctionner.
Vous de l'élimination de l'objet, lorsque l'interface utilisateur est la création (que ce que l'exception a dit)
Essayer avec ceci:
Note le ShowDialog()
Et pourquoi u utilisation .Exemple ? u peut essayer de faire: frmMain.objfrm = new frmMyForm(); Cheers
OriginalL'auteur MarcosMeli