Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    View Cyril Durand's profile on LinkedIn

    hit counters

Les liens (verbs) en dessous de la fenetre de propriété

Je sais que le titre n'est pas trés évoquateur, mais pas facile de décrire ces liens. Donc voici une photo
Image Hosted by ImageShack.us
Je parle du lien Change Skin qui est en dessous de la fenetre de propriétés, en fait d'aprés les noms données par les propriétés on peut appellé ca des verbs ? :p

J'ai cherché pas mal de temps ca sur le net, mais malheureusement sans réel succés, pourtant j'etais sur de l'avoir déjà vu quelque part ...
Aprés quelques recherches, j'ai enfin trouver, l'astuce se trouve dans le merveilleux livre Au coeur de Microsoft .net Visual Basic.net de Richard Clark

L'astuce se déroule bien sur dans le designer. (Pour ceux qui ne savent pas comment ca fonctionne : aller donc faire un tour du coté des Tkfé (Frederic Melantois)) ou autour des pages 220 du bouquins de Richard :p

Pour rajouter un lien il suffit simplement de surchargés la propriété verbs, et de rajouter des verbs, rien de bien compliqué

    Public Class CalendarDesigner
        Inherits ControlDesigner
        
            Public Overrides ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection
                Get
                    Dim _oVerbs As New DesignerVerbCollection
                    _oVerbs.AddRange(MyBase.Verbs)
                    _oVerbs.Add(New DesignerVerb("Change Skin", AddressOf ShowSkinChangerForm))
                    Return _oVerbs
                End Get
            End Property
            
    End Class

Seul particularité, le constructeur de DesignerVerb, demande System.EventHandler donc la méthode ShowSkinChangerForm devra bien sur avoir les paramètres qui vont bien (sender as object, e as EventArgs)

Aprés 1h de recherche, je suis content, j'ai enfin trouvé :), seul problème, j'ai aussi un Smart Tags, et dans ce smart tags, j'ai le meme lien, qui appelle la meme sub. Le problème c'est que la méthode qui affiche la form à partir du smart tags, fait pas partie de la meme class, mais de

        Public Class CalendarActionList
            Inherits DesignerActionList

Le copier coller fonctionne à merveille mais bof, doit y avoir mieux ...
et heureusement oui !

Pour mes smarts Tags, j'ai suivi à la lettre la méthode cité par TKfé, et aussi une bonne dose de Reflector :p
et une chose m'a echappé. voici comment je rajouter le lien

            Public Overrides Function GetSortedActionItems() As DesignerActionItemCollection
                Dim ai As DesignerActionItemCollection = New DesignerActionItemCollection
                ai.Add(New DesignerActionPropertyItem("VisibleDate", "Visible month : "))
                ai.Add(New DesignerActionMethodItem(Me, "ShowSkinChangerForm", "Change skin", False))
                Return ai
            End Function

si j'avais suivis un peu moins à la lettre les conseils de Tkfé, je me serais peut etre interressé un peu plus au constructeur de DesignerActionMethodItem et oui le 4eme paramètre est un boolean, et le nom de ce paramètre est includeAsDesignVerb il suffit de le passer à True et on obtient la capture ci dessus :)

C'etait pas si compliqué finalement :p

Posted: mercredi 29 juin 2005 18:37 par cyril
Classé sous : ,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

cyril a dit :

> DesignerActionMethodItem (... true pour le verb

Si tu avais suivi mon blog à la lettre ;-) , tu aurais trouvé ceci :

http://msdn.microsoft.com/msdnmag/issues/05/07/DesignerActions/default.aspx

où on en parle dans la rubrique "Adding Designer Action Method Items"...

Pas bien! LOL LOL LOL LOL
# juin 30, 2005 08:44
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Disparition de variables de session PHP après une redirection ? par MadMatt le il y a 9 heures et 32 minutes

- [MOSS 2007] Publier ses formulaires InfoPath via feature par Adrien Siffermann le il y a 12 heures et 39 minutes

- Imagine Cup 2008 - Paris - Les résultats par TheSaib .NET blog le il y a 14 heures et 1 minutes

- L'Egypte accueille Imagine Cup 2009 par Code is poetry le il y a 14 heures et 13 minutes

- PowerShell : Mise en ligne de fonctions intéressantes pour SharePoint par Blog Technique de Romelard Fabrice le il y a 15 heures et 20 minutes

- Raccourcis clavier et CRM 4 par Clark, C#, MSCRM, SBS le il y a 19 heures et 26 minutes

- [Silverlight] Comment échanger des données entre une application Silverlight et une page ASP.NET via cookies ? par Thomas Lebrun le il y a 20 heures et 2 minutes

- SharePoint 2007 : Trouver les fichiers CheckOut dans une librairie de document par Philippe Sentenac [MVP SharePoint] le il y a 22 heures et 30 minutes

- [Open XML] Travailler avec Open XML : Linq To XML (Partie 2 - Requêtes/XPath) par Julien Chable le 07-08-2008, 02:05

- [Open XML] Travailler avec Open XML : Linq To XML (Partie 1 - Namespace) par Julien Chable le 07-08-2008, 00:44