bonjour;
je voudrais savoir si on peut fermer une forme à partir de son handle et si oui comment dois je faire?
merci pour l'aide
bonjour;
je voudrais savoir si on peut fermer une forme à partir de son handle et si oui comment dois je faire?
merci pour l'aide
Tu peux utiliser :
Et ensuite appeler Close sur le Form retourné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Form.FromHandle(...)
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
ben je recupere une donnée de type "control" et je ne peut pas faire un close dessus
Salut
regardes du coté de l'api CloseWindow ou un truc dans le genre
[DllImport("user32.dll")]
static extern bool CloseWindow(IntPtr hWnd);
Ca devrait le faire ?
The Monz, Toulouse
PS : pour info, www.pinvoke.net est ton ami pour l'appel de f° Win32
The Monz, Toulouse
Expertise dans la logistique et le développement pour
plateforme .Net (Windows, Windows CE, Android)
ben je vais pas taper dans l'API windows avec un DLLImport...y a forcement ca dans le framework...
Elle ne te convient pas la méthode avec le Form.FromHandle ?Envoyé par UnSofteuxAmateur
Tu n'as qu'a caster le retour de FromHandle en un type Form et ça devrait fonctionner non ?
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
ben j'ai essayé le cast n'est pas possible...
Peux tu poster le code ?Envoyé par UnSofteuxAmateur
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 System.Windows.Forms.Control toto = Form.FromHandle(BaseFormLibrary.Commun.iHandleFormActive); (System.Windows.Forms.Form)toto.close().
J'ai utilisé ça pour tester :
Et ça fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 private void Form1_Load(object sender, EventArgs e) { Form myForm = (Form) Form.FromHandle(Handle); myForm.Close(); }
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
ben moi j'ai une erreur de compile
Control ne contient pas de définition pour close
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 System.Windows.Forms.Control laForm = (Form) Form.FromHandle(BaseFormLibrary.Commun.iHandleFormActive); laForm.close();
Dans ce cas, utilise le code que je t'ai donné juste avant (celui que j'utilise pour tester), celui-là compile et fonctionne
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
ben c'est juste que je vois pas bien la différence entre ton code et le miens
Ah ok, tu utilises une variable de type Control au lieu d'une variable de type Form pour stocker MyFormEnvoyé par UnSofteuxAmateur
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
ah si désolé je viens juste de voir la différence entre les deux codes...
cela étant dis j'ai un beug à l'exécution...ce code est dans un thread alors que la form a été créé dans un autre thread...
l'erreur c'est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Opération inter-threads non valide : le contrôle 'Identification' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
Tu peux utiliser un delegate, il y a déjà plusieurs topic qui parlent de ça, tu peux faire une petite recherche, tu devrais trouver ton bonheur.
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
j'ai fait des recherches sur les delegate et quelques tests mais ca marche pas je dois mal mis prendre.
Mais en plus je vois pas bien en qui les delegate peuvent m'aider
Bonjour à tous.
J'ai testé le code fournis avec "Handle" et ça marche.
Par contre, lorsque j'essaye le code suivant pour obtenir l'handle d'une autre fenêtre:
mon objet form reste à null.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Process proc = Process.GetProcessesByName("notepad")[0]; Form form = (Form)Form.FromHandle(proc.MainWindowHandle);
Avez-vous une solution ?
Merci !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager