Récupération de la Form conteneur d'un composant non graphique [Résolu]

Signaler
Messages postés
305
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 août 2011
-
Messages postés
305
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 août 2011
-
Bonjour les gens,

Alors voila, je suis en train d'essayer de créer un petit composant non graphique (comme le composant OpenFileDialog par exemple). Le but de ce composant est de garder dans un coin de la base de registre la position de la fenêtre sur laquelle il est disposé et de repositionner la-dite fenêtre au même lors de la réouverture de celle-ci.
Seulement voila, pour celà, j'aurais besoin de récupérer la Form sur laquelle a été placée mon composant. Quelqu'un sait-il comment faire ?

Merki d'avance !

Yoann

ps : Je pense qu'il faut se servir de this.Site.Container dans mon composant, mais vraiment, je sais pas comment faire.

7 réponses

Messages postés
305
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 août 2011
4
J'ai enfin trouvé une solution, et voila la source qui en résulte :
http://csharpfr.com/code.aspx?ID=34875
Messages postés
133
Date d'inscription
jeudi 27 mars 2003
Statut
Membre
Dernière intervention
27 février 2005
5
Tu as methode Control.FindForm() qui te renvois la form sur lequel le controle est passé.

@+
k@rlo
Messages postés
91
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
25 janvier 2007

Ben Ecoute je vois que tu veux ecrire et lire a partir du Registry :=)

la Reference est :Microsoft.Win32
//Exp :
using Microsoft.Win32;

//-> dans une metohde tu colle :

//creer une nouvelle clé
RegistryKey key = Registry.LocalMachine.CreateSubKey("Software",true);
key.CreateSubKey("Nom_de_ta_clé");

//Supprimer une clé
key.DeleteSubKey("Nom de ta clé");

et aisi de suite
cherche sur la classe Microsoft.Win 32

A bientot

NO TIME TO WASTE
Messages postés
305
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 août 2011
4
Re-bonjour !

Merki pour l'info sur le registre, mais je l'avais dèjà trouvée. Mais vraiment, un grand merci quand-même.

Le problème ici, c'est que j'ai crée un composant et que que je veux accéder a la form qui contient ce composant, depuis l'intérieur de celui-ci. Plus clairement, je cherche une fonction qui me permette, depuis l'intérieur de mon composant, de récupérer la form qui le possède.

Alors pour la méthode Control.FindForm(), c'est kler que ce serait l'idéal, et ca doit marcher pour les composants visibles, mais en fait, je suis dans le cas d'un composant non graphique, qui dérive donc directement de la classe "Component". La méthode "FindForm() n'est donc pas accéssible. Si quelqu'un à une autre solution, je suis évidemment preuneur !

En tout cas, grand merci à Karlo et Crack_xp qui m'ont répondu ;-)

Yoann
Messages postés
305
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 août 2011
4
Ha oui, j'oubliais, voila le code de mon composant... Le code n'est pas complet, et je met seulement ce qui me semble le plus important, de mannière à rendre plus simple la lecture. Je mettrait la source complète sur ce site quand elle sera terminée.

using System;
using System.ComponentModel;
using System.Windows.Forms;

public class YoFormAspectKeeper:Component{

public YoFormAspectKeeper(){

// Alors c'est là qu'il faut que je récupère la form qui contient ce composant.
//System.Windows.Forms.Form form = (System.Windows.Forms.Form)this.Container;
form.Load += new System.EventHandler(this.MainFormLoad);
form.Closed += new System.EventHandler(this.MainFormClosed);

}

private void MainFormLoad(object sender, System.EventArgs e){
// Récupération des paramètres dans la base de registre
}

private void MainFormClosed(object sender, System.EventArgs e){
// nregistrement des paramètres dans la base de registre
}
}
Messages postés
2
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
8 mars 2008

salut tout le monde ;
j'arrive pas à determiner les classes api java pour m'aider à recuperer des informations de coté client/serveur.
merci d'avencer....
Messages postés
305
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 août 2011
4
Tu es sur la partie c# du site, et non java. De plus, il faut que tu sois plus précis dans tes questions : je pense que très peu de gens on compris ce que tu veux ici...