Bonjour,
J'ai créé une classe BoutonTr, héritée de Bouton, qui permet de définir la transparence de l'image placée dedans, mais j'ai un petit soucis avec les propriétés dans l'inspecteur d'objet... Il est impossible de vider les propriétés ImageOriginale et Image avec la touche DEL une fois qu'il y a une image dedans (sauf en allant dans le code retirer la ligne).
Où est le problème ?
Merci.
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 #region ButtonTr [System.Drawing.ToolboxBitmapAttribute(typeof(System.Windows.Forms.Button))] // Définition de l'icone dans le ToolBox public class ButtonTr : Button { #region Déclarations private bool transparent; private Image imageoriginale; private Image image; #endregion #region Constructeur public ButtonTr() { // // TODO: Ajouter ici la logique du constructeur // } #endregion #region Transparent [System.ComponentModel.DefaultValueAttribute(typeof(bool), "False"), System.ComponentModel.CategoryAttribute("Appearance")] // Valeur par défaut et catégorie dans le ToolBox public bool Transparent { get { return transparent; } set { if(value == true) { if(this.Image != null) { this.Image = maketransparent(this.image); } } else { if(this.Image != null) { this.image = (Image)imageoriginale.Clone(); base.Image = this.Image; } } this.Invalidate(); transparent = value; } } #endregion #region MakeTransparent protected Bitmap maketransparent(Image pict) { Bitmap bmp = (Bitmap)pict; bmp.MakeTransparent(bmp.GetPixel(0,bmp.Height-1)); // Couleur transparente = bottom/left return bmp; } #endregion #region ImageOriginale [System.ComponentModel.CategoryAttribute("Appearance")] // Valeur par défaut et catégorie dans le ToolBox public Image ImageOriginale { get { return this.imageoriginale; } set { this.imageoriginale = value; if(this.imageoriginale == null) this.Image = null; else this.Image = (Image)this.imageoriginale.Clone(); } } #endregion #region Image public new Image Image { get { if (this.image == null && base.ImageList != null) if (base.ImageIndex >= 0) { if(transparent) return maketransparent(base.ImageList.Images[base.ImageIndex]); else return base.ImageList.Images[base.ImageIndex]; } return this.image; } set { if (this.Image != value) { if(this.imageoriginale != value) { // Nouvelle image this.imageoriginale = (Image)value.Clone(); this.image = value; if (this.image != null) { base.ImageIndex = -1; base.ImageList = null; if(this.transparent) { this.image = maketransparent(value); } } } else { this.image = value; if (this.image != null) { base.ImageIndex = -1; base.ImageList = null; } } } base.Image = this.image; this.Invalidate(); } } #endregion } #endregion
Partager