Bonjour,
Je m'amuse actuellement à créer un contrôle pour afficher un diagramme de Gantt (ceux que l'on peut trouver sur le net en libre/payant ne correspondent pas bien à mon besoin).
Dans le code de mon usercontrol, j'ai donc une propriété que j'ai nommée DataSource qui sera chargée de recevoir les données à afficher dans le diagramme (aussi bien dans le DataGridView de gauche que la PictureBox de droite (cf. image en pièce jointe).
Le hic, c'est que pour afficher les barres dans ma PictoreBox, j'ai besoin d'informations spécifiques.
Pour donner un exemple concret, voici un modèle simple de classes :
Bon, là j'avais le test avec des employés donc la classe s'appelle Employee mais l'idée est là. Pour que mon contrôle fonctionne, il faut que l'objet passé à ma propriété DataSource hérite de cette classe Employee (qui sera bien sûr renommée de manière appropriée).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 Public Class Employee Public Property Name As String Public Property Ranges As List(Of Range) Public Sub New(name As String) Me.Name = name Ranges = New List(Of Range) End Sub Public Sub AddRange(debut As Decimal, fin As Decimal, type As Range.TypeRange) ... End Sub Public Function GetRangeSurrounding(time As Decimal) As Range ... End Function Private Sub AddSimplifiedRange(debut As Decimal, fin As Decimal, type As Range.TypeRange) ... End Sub Private Sub SimplifyRange() ... End Sub Private Function GetRangeById(id As Integer) As Range ... End Function End Class Public Class Range Public Property Id As Integer Public Property Debut As Decimal Public Property Fin As Decimal Public Property Type As TypeRange Public Property Text As String Public Sub New(id As Integer, debut As Decimal, fin As Decimal, type As TypeRange) Me.Id = id Me.Debut = debut Me.Fin = fin Me.Type = type End Sub End Class
Ma question est donc : Comment définir que, pour une propriété d'une classe, son type DOIT hériter d'un type précis ?
Partager