Comment puis-je implémenter fonctions de petite tâche dans ma propre bibliothèque de contrôle Windows personnalisée comme ci-dessous? Bibliothèque de contrôle Windows personnalisée en C#
Répondre
Vous devez créer votre propre concepteur pour votre contrôle. Commencez par ajouter une référence à System.Design. Un exemple de contrôle peut ressembler à ceci:
using System;
using System.Windows.Forms;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Windows.Forms.Design;
[Designer(typeof(MyControlDesigner))]
public class MyControl : Control {
public bool Prop { get; set; }
}
Remarquez l'attribut [Designer], il définit le concepteur de contrôle personnalisé. Pour obtenir le vôtre, dérivez votre propre concepteur à partir de ControlDesigner. Remplacer la propriété ActionLists pour créer la liste des tâches pour le concepteur:
internal class MyControlDesigner : ControlDesigner {
private DesignerActionListCollection actionLists;
public override DesignerActionListCollection ActionLists {
get {
if (actionLists == null) {
actionLists = new DesignerActionListCollection();
actionLists.Add(new MyActionListItem(this));
}
return actionLists;
}
}
}
Maintenant, vous devez créer votre ActionListItem personnalisé, qui pourrait ressembler à ceci:
internal class MyActionListItem : DesignerActionList {
public MyActionListItem(ControlDesigner owner)
: base(owner.Component) {
}
public override DesignerActionItemCollection GetSortedActionItems() {
var items = new DesignerActionItemCollection();
items.Add(new DesignerActionTextItem("Hello world", "Category1"));
items.Add(new DesignerActionPropertyItem("Checked", "Sample checked item"));
return items;
}
public bool Checked {
get { return ((MyControl)base.Component).Prop; }
set { ((MyControl)base.Component).Prop = value; }
}
}
Construire la liste dans la méthode GetSortedActionItems est la clé pour créer votre propre panneau d'élément de tâche.
Voilà la bonne version. Je devrais noter que j'ai écrasé Visual Studio sur le bureau trois fois tout en travaillant sur cet exemple de code. VS2008 est et non résilient aux exceptions non gérées dans le code du concepteur personnalisé. Sauvez souvent. Le débogage du code temporel de conception nécessite le démarrage d'une autre instance de VS qui peut arrêter le débogueur sur les exceptions de conception.
C'est ce qu'on appelle un "Smart Tag". Vous pouvez trouver un exemple rapide ici:
Adding Smart Tags to Windows Forms Controls
Source: How can I implement "small task features" in my own custom windows control library like below? - CodeProject
- 1. C# personnalisée contrôle WinForm
- 2. Quelle est la différence entre une bibliothèque de contrôle utilisateur et une bibliothèque de contrôle personnalisée?
- 3. Bibliothèque de points de contrôle pour C#
- 4. GUI de contrôle du calendrier bibliothèque C++
- 5. Bouton de la boîte de contrôle personnalisée
- 6. Appel de la bibliothèque de contrôle WPF
- 7. Création d'un contrôle Windows Forms (C++)
- 8. Ajout d'éléments au boîtier de contrôle Windows
- 9. Fichiers de bibliothèque en C
- 10. Bibliothèque de classes en C#
- 11. C# - programme d'installation de Windows échoue dans l'action personnalisée
- 12. C# échantillons pour Windows Contrôle parental API
- 13. Bibliothèque IRC en C#
- 14. Bibliothèque graphique en C
- 15. bibliothèque partagée en C
- 16. Bibliothèque BigInt C ou C++ sur Microsoft Windows
- 17. Authentification Windows GINA personnalisée
- 18. TypeAhead Feature TextBox Contrôle Windows C#
- 19. méthode de condition personnalisée attributs en C#
- 20. bouton d'image personnalisée contrôle, silverlight
- 21. C++ personnalisée construction définit
- 22. Bibliothèque de démantèlement de Windows
- 23. C# usercontrol en fonction de la bibliothèque de classes d'utilisateurs
- 24. Bibliothèque de graphiques financiers C# pour Windows Forms?
- 25. Explorateur de Windows de contrôle à partir de C#
- 26. Boutons de contrôle de page personnalisée iPhone
- 27. Intégrez des bibliothèques js tierces sur une bibliothèque de contrôle personnalisée. Oui ou non?
- 28. Bibliothèque de mise en évidence syntaxique écrite en C/C++
- 29. Bibliothèque statique Windows
- 30. ASP.NET contrôle de connexion authentification personnalisée échoue