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![]()
Partager