RAFRAICHISSEMENT PROPERTYGRID DU DESIGNER (ATTRIBUT REFRESHPROPERTIES)

bestouinouin Messages postés 18 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 4 janvier 2007 - 3 déc. 2006 à 19:03
bestouinouin Messages postés 18 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 4 janvier 2007 - 4 janv. 2007 à 11:32
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/32324-rafraichissement-propertygrid-du-designer-attribut-refreshproperties

bestouinouin Messages postés 18 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 4 janvier 2007
4 janv. 2007 à 11:32
Voici une source ou j'utilise un autre moyen pour modifier la propriété sous visual studio. voici le lien vers le projet.
http://www.csharpfr.com/codes/ANCRAGE-FENETRE_40970.aspx
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
4 déc. 2006 à 19:52
lol
De rien, ce fut avec plaisir :-)
bestouinouin Messages postés 18 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 4 janvier 2007
4 déc. 2006 à 08:57
Je m'incline devant ton savoir ;-). En quelques lignes tu m'as donné la solution et appris le "as ..." que je ne connaissais pas. C'est avec des gens comme toi que l'on avance. Merci encore.
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
3 déc. 2006 à 21:02
Ah ok dit comme ça je vois ce que tu veux faire :-)
Tu dois te servir de la méthode RaiseComponentChanged (http://msdn2.microsoft.com/fr-fr/library/system.componentmodel.design.componentdesigner.raisecomponentchanged(VS.80).aspx)


Par exemple, dans le cadre de l'exemple cité ça donnerais ce genre de chose :
J'ai ajouter une propriété Time de type string à ExampleComponent et modifier la méthode onVerb du designer personnalisé :

// Event handling method for the example designer verb
private void onVerb(object sender, EventArgs e)
{
string newValue = DateTime.Now.ToLongTimeString();
ExampleComponent component = base.Component as ExampleComponent;
if (component != null)
{
// notification de changement
MemberDescriptor timeDescriptor = TypeDescriptor.GetProperties(component)["Time"];
this.RaiseComponentChanged(timeDescriptor, component.Time, newValue);
}

component.Time = newValue;
}
bestouinouin Messages postés 18 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 4 janvier 2007
3 déc. 2006 à 20:07
Je suis désolé je m'explique très mal.En faite c'est un code que j'ai trouvé sur msdn voici le lien (http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfsystemcomponentmodeldesigncomponentdesignerclasstopic.asp), et j'aimerai modifier une valeur de mon composant à la place des messagebox par exemple, et le faire apparaittre dans la grille. Je vais continuer à chercher... ;-)
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
3 déc. 2006 à 19:52
Pas sûr, vu que je ne suis déjà pas sur de l'avoir compris.
Qu'entend tu par "un de mes controles qui herite de "System.ComponentModel.Design.ComponentDesigner"" ?
A ma connaissance on associe un designer personnalisé à un contrôle, le contrôle ne devient pas lui même un designer personnalisé.
Surtout qu'en C# il n'y a pas d'héritage multiple, donc on ne peut à la fois être contrôle/composant (possédant System.ComponentModel.Component dans sa hiérarchie) et hériter dans le même temps de ComponentDesigner.
bestouinouin Messages postés 18 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 4 janvier 2007
3 déc. 2006 à 19:12
Aurais tu une solution a mon probleme ???
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
3 déc. 2006 à 19:09
Salut,

Cet attribut ne se met pas sur les propriétés du designer personnalisé utilisé pour le contrôle mais sur les propriétés du contrôle lui même.
bestouinouin Messages postés 18 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 4 janvier 2007
3 déc. 2006 à 19:03
J'ai une petite question. Voila j'ai essayer de mettre ton code dans un de mes controles qui herite de "System.ComponentModel.Design.ComponentDesigner" qui me permet d'ajouter quelques petites options à mon controle, mais il ne rafraichi mes propriétés.Il faut que je clique sur la propriété pour qu'elle s'actualise, aurais tu une reponse à mon probleme ??? merci d'avance ;-)
Rejoignez-nous