Dag,
Ik zit al de ganse dag met een irritant probleem in VS 2005.
Ik maak een usercontrol aan voor een compact device, die vervolgens prima werkt at-runtime, maar als ik hem in de designer smijt dan staat ie er wel en kan ik properties aanpassen, maar niet de naam van de control of enig andere control op de form.
Wanneer ik dit probeer krijg ik telkens de foutmelding:
Code generation for property 'Image' failed. Error was: 'Object reference not set to an instance of an object.'
Het rare is nu, wanneer ik wat test op een ander nieuw form dit helemaal het geval niet is. Ik heb al alle topics die ik kon vinden op google omtrent deze fout gelezen, maar niks kon helpen.
Hier eventjes de code van de control:
Ik zit al de ganse dag met een irritant probleem in VS 2005.
Ik maak een usercontrol aan voor een compact device, die vervolgens prima werkt at-runtime, maar als ik hem in de designer smijt dan staat ie er wel en kan ik properties aanpassen, maar niet de naam van de control of enig andere control op de form.
Wanneer ik dit probeer krijg ik telkens de foutmelding:
Code generation for property 'Image' failed. Error was: 'Object reference not set to an instance of an object.'
Het rare is nu, wanneer ik wat test op een ander nieuw form dit helemaal het geval niet is. Ik heb al alle topics die ik kon vinden op google omtrent deze fout gelezen, maar niks kon helpen.
Hier eventjes de code van de control:
code:
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
| using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace GuiTiger {
[Serializable]
public partial class cPlates : UserControl {
#region Privates
Bitmap _image = null;
Nullable< Color> _transparentColor = null;
Size _margin = new Size(5,5);
Color _borderColor = Color.Black;
#endregion
#region Properties
public Color BorderColor {
get { return _borderColor; }
set { _borderColor = value; }
}
private decimal ImageScale {
get {
if (this._image != null) {
return ((decimal)this.Height - (decimal)_margin.Height * 2) / (decimal)this.Image.Height;
} else { return 1; }
}
}
public Size Margin {
get { return _margin; }
set { _margin = value; }
}
public Nullable<Color> TransparentColor {
get { return _transparentColor; }
set { _transparentColor = value; }
}
public Bitmap Image {
get { return this._image; }
set { this._image = value; }
}
#endregion
public cPlates() {
this.Image = null;
_transparentColor = null;
//InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e) {
Graphics g = e.Graphics;
Rectangle r = e.ClipRectangle;
if (Image != null) {
System.Drawing.Imaging.ImageAttributes ia = new System.Drawing.Imaging.ImageAttributes();
if (TransparentColor != null) ia.SetColorKey((Color)TransparentColor, (Color)TransparentColor);
g.DrawImage(Image, new Rectangle(_margin.Width, _margin.Height, (int)(this.Image.Width * ImageScale), (int)(this.Image.Height * ImageScale)), 0, 0, this.Image.Width, this.Image.Height, GraphicsUnit.Pixel, ia);
}
switch (this.BorderStyle) {
case BorderStyle.Fixed3D:
break;
case BorderStyle.FixedSingle:
g.DrawRectangle(new Pen(_borderColor), new Rectangle(r.X, r.Y, r.Width - 1, r.Height - 1));
break;
case BorderStyle.None:
break;
default:
break;
}
//base.OnPaint(e);
}
protected override void OnPaintBackground(PaintEventArgs e) {
Graphics g = e.Graphics;
g.FillRectangle(new SolidBrush(this.BackColor), e.ClipRectangle);
//base.OnPaintBackground(e);
}
}
} |