2010-11-22 4 views
1

Dans .NET Framework, plusieurs contrôles répertorient un certain nombre de liens sous la liste de propriétés dans la fenêtre Propriétés du concepteur Visual Studio. (par exemple, TabControl, ComboBox)Comment puis-je créer des liens dans la fenêtre Propriétés pour un contrôle personnalisé?

J'ai créé un contrôle personnalisé et je souhaite créer un lien dans la fenêtre des propriétés, par exemple TabControl et ComboBox. Lorsque le lien est cliqué, une certaine méthode sur mon contrôle devrait être appelée.

Comment est-ce que je peux faire ceci?

Merci!

Répondre

1

Vous devez créer un concepteur personnalisé pour votre contrôle et remplacer la propriété Verbs. La première fois que votre remplacement est appelé, créez un DesignerVerbCollection et remplissez-le. Renvoyez la collection à chaque appel suivant.

Edit: A propos, vous créez le concepteur en dérivant de System.Windows.Forms.Design.ControlDesigner et vous appliquer à votre classe en mettant cet attribut de votre classe:

[Designer(MyControlDesigner)] 
public class MyControl 
{ 
    // ... 
} 
0

devarticles

public class DirectoryTreeDesigner : ControlDesigner 
{ 

protected override void PostFilterProperties( 
System.Collections.IDictionary properties) 
{ 
    properties.Remove("Nodes"); 
} 

DesignerVerbCollection verbs = new DesignerVerbCollection(); 

public DirectoryTreeDesigner() 
{ 
    // Configure the designer verb collection. 
    string[] drives = System.IO.Directory.GetLogicalDrives(); 

    foreach (string drive in drives) 
    { 
     verbs.Add(new DesignerVerb("Set Drive " + drive, new EventHandler(OnVerb))); 
    } 
} 

public override DesignerVerbCollection Verbs 
{ 
    get { return verbs; } 
} 

protected void OnVerb(object sender, EventArgs e) 
{ 
    // Retrieve the selected drive. 
    char driveLetter = ((DesignerVerb)sender).Text[10]; 

    // Adjust the associated control. 
    ((DirectoryTree)this.Control).Drive = driveLetter; 
} 

}

+0

Cela ne me permet pas. J'ai demandé comment afficher un lien sous la grille de propriétés, comme les liens "Ajouter un onglet" et "Supprimer un onglet" sur le TabControl. Je n'ai pas demandé comment créer une propriété pour le contrôle. – AndyGeek

+0

@AndyGeek ... modifié ... –

1

Je pense que vous êtes à la recherche de la classe DesignerVerb.

Questions connexes