Bonjours,
j'ai créer un composant mais j'ai un message d'erreur lorsque je le pose en mode design : La référence d'objet n'est pas définie à une instance d'un objet.
Je n'ai pas de probleme de compil
Le probleme viendrait de l'appel de la variable Grid.NbreColonne dans OnPaint


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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Imports System 
Imports System.Drawing 
Imports System.Windows.Forms 
Imports System.ComponentModel 
Imports System.Drawing.Drawing2D 'cette bibliothèque sert à faire les pointillés 
'Imports System.Windows.Forms.UserControl 'pour gérer la transparence 
 
Public Class AgendaGrid 
 
   Inherits Control 
 
   Public MyGrid As ClassGrid 'variable pour la prpriété Grid
 
   Public Sub New() 
 
   End Sub 'New 
 
 
   Protected Overrides Sub OnPaint(e As PaintEventArgs) 'dessine le composant (s'active automatiquement) 
 
   		Dim i As int16
   		Dim BrushBackColor As New SolidBrush(Color.White) 'défini la couleur de fond
 
   		For i=0 To Grid.NbreColonne'Grid.NbreColonne - 1
   		'	Dim Rect As New Rectangle(Grid.OffsetX + i*Grid.X, Grid.OffsetY, Grid.OffsetX + i*Grid.X + Grid.CaseX, Grid.OffsetY + Grid.TempMaxColonne)
   		'	   		
		'	e.Graphics.FillRectangle(BrushBackColor, Rect) 'colorie le fond du rectangle 
		'	BrushBackColor.Dispose() 'efface la mémoire
		Next i
 
   End Sub  
 
   <Category("Grid"), Description("Définition de la Grille Du Tableau")> _
   Public Property Grid() As ClassGrid    		   		
   		Get
           Return MyGrid
        End Get
 
        Set 
           MyGrid = value
        End Set		
   End Property 
 
End Class
 
Public Class ClassGrid 
 
	Private Xtemp As Int16 = 120 'pas de la grille en X
	Private Ytemp As Int16 = 30 'pas de la grille en Y
	Private CaseXtemp As Int16 = 96 'largeur d'une case tache par defaut
  	Private OffsetXtemp As Int16 = 50 'offset de la position du tableau en X
  	Private OffsetYtemp As Int16 = 50 'offset de la position du tableau en Y
  	Private NbreColonneTemp As int16 = 7 'Nombre de colonne dans le tableau
  	Private TempMaxColonneTemp As int16 = 700 'Nombre de minutes dans la journée
  	Private GridMoveTemp As Boolean = True 'Deplacement de la tache au pas de la grille
 
 
	'<Category("Grid"), Description("Définition du Pas de la Grille en X"), DefaultValue(30)> _
  	Public Property X As Int16 
		Get 
           Return Xtemp 
        End Get
 
        Set
           Xtemp = value 
        End Set 
  	End Property 
 
  	Public Property Y As Int16 
		Get 
           Return Ytemp 
        End Get
 
        Set
           Ytemp = value 
        End Set 
  	End Property
 
  	Public Property CaseX As Int16 'largeur d'une case
		Get 
           Return CaseXtemp 
        End Get
 
        Set 
           CaseXtemp = value
        End Set
  	End Property  	
 
  	Public Property OffsetX As Int16 'offset de l'origine en X
		Get 
           Return OffsetXtemp 
        End Get
 
        Set 
           OffsetXtemp = value
        End Set
  	End Property
 
  	Public Property OffsetY As Int16 'offset de l'origine en Y
		Get 
           Return OffsetYtemp 
        End Get
 
        Set 
           OffsetYtemp = value
        End Set
  	End Property  
 
 
  	Public Property NbreColonne As Int16 'Nbre de colonne dans le tableau
		Get 
           Return NbreColonneTemp 
        End Get
 
        Set 
           NbreColonneTemp = value
        End Set
  	End Property
 
  	Public Property TempMaxColonne As Int16 'Durée Max qu'il y a dans une colonne
		Get 
           Return TempMaxColonneTemp 
        End Get
 
        Set 
           TempMaxColonneTemp = value
        End Set
  	End Property
 
 
  	Public Property GridMove As Boolean 'Deplacement de la tache sur la grille
		Get 
           Return GridMoveTemp 
        End Get
 
        Set 
           GridMoveTemp = value
        End Set
  	End Property
 
 
End Class

Tag [VB.NET] rajouté par Morpheus
Merci d'y penser à l'avenir