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

Résolu
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 - 10 juin 2004 à 23:07
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 - 25 févr. 2008 à 20:12
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

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

@+
k@rlo
0
crack_xp Messages postés 91 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 25 janvier 2007
11 juin 2004 à 19:09
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
0
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
11 juin 2004 à 21:47
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
11 juin 2004 à 21:53
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
}
}
0
souillas Messages postés 2 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 8 mars 2008
25 févr. 2008 à 19:51
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....
0
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
25 févr. 2008 à 20:12
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...
0
Rejoignez-nous