J'ai testé hier une autre solution :
- créer dans la classe une méthode que j'ai appelée Initialize dans lequel je reporte tout le code que je souhaitais mettre dans sub new.
- Appeler cette méthode dans le form :
1 2 3 4 5 6
|
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
CustomChart1.Initialize()
End Sub |
Au moins, j'ai bien toujours la possibilité de créer mon contrôle depuis la boîte à outil et de modifier ses propriétés dans le designer.
L'inconvénient, c'est que le contrôle apparaissant dans le designer est un contrôle Chart simple non customisé. Donc il ne contient (par exemple) qu'un ChartArea et une seule Série. Donc, tout comme avec ta solution, je ne peux pas accéder en mode design aux propriétés du deuxième ChartArea et de la 2ème série.
Un autre inconvénient est que, au bout d'un certain nombre d'exécutions, le contenu du contrôle dans le designer n'est plus visible : il est remplacé par une phrase indiquant qu'il y a un pb, le cadre reste donc vide hormis cette phrase. Enfin, ce n'est pas un inconvénient mais plutôt un sujet d'inquiétude sur l'intégrité de ma classe.
Partager