ik wil een array van pictureboxen maken met daarbovenop labels om te tekst transparant te laten zijn. Het lukt mij, bij wijze van test, als ik een label en een picturebox zelf op een form zet. Ik gebruik deze code:
ok, nu wil ik een array van pictureboxen met daarbovenop wederom de labels. de aantallen worden dynamisch bepaald. De code om een array van objecten op het scherm te zetten gaat op zich goed, maar ik krijg, middels onderstaande code de labels niet zichtbaar. Als ik b.visible = false toevoeg, zie ik ze wel. Ook geforceerd op de voorgrond zetten heeft geen resultaat. Het is ongetwijfeld iets kleins, maar ik zie niet wat ik fout doe.
code:
1
2
3
4
5
6
| private void Form2_Load(object sender, EventArgs e) { label1.BackColor = Color.Transparent; label1.Parent = pictureBox1 ; label1.Location = pictureBox1.PointToClient(this.PointToScreen(label1.Location)); } |
ok, nu wil ik een array van pictureboxen met daarbovenop wederom de labels. de aantallen worden dynamisch bepaald. De code om een array van objecten op het scherm te zetten gaat op zich goed, maar ik krijg, middels onderstaande code de labels niet zichtbaar. Als ik b.visible = false toevoeg, zie ik ze wel. Ook geforceerd op de voorgrond zetten heeft geen resultaat. Het is ongetwijfeld iets kleins, maar ik zie niet wat ik fout doe.
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
| for (int rows = 0; rows < iRows; rows++) { for (int cols = 0; cols < iCols; cols++) { counter++; PictureBox b = new PictureBox(); Label lb = new Label(); b.Height = iKnopHoogte; b.Width = iKnopBreedte; b.Name = "Button" + counter; b.Click += new EventHandler(ButtonClicks); b.Top = (rows) * iKnopHoogte; b.Left = (cols) * iKnopBreedte; b.Font = new Font("verdana", 12, FontStyle.Bold); b.Image = picRood.Image; b.Tag="Naam\n" + Convert.ToString(counter); b.SizeMode = PictureBoxSizeMode.StretchImage; // b.Visible = false; this.Controls.Add(b); lb.TextAlign = ContentAlignment.MiddleCenter; lb.Name = "label" + counter; lb.Text = counter.ToString(); lb.BackColor = Color.Transparent; lb.Font = new Font("verdana", 12, FontStyle.Bold); lb.Parent = b; lb.Height = b.Height; lb.Width = b.Width; //lb.Location = new Point((cols) * iKnopBreedte, (rows) * iKnopHoogte); // b.PointToClient(this.PointToScreen(lb.Location)); //lb.BringToFront(); lb.Location = b.PointToClient(this.PointToScreen(lb.Location)); this.Controls.Add(lb); //b.Visible = true ; //b.BringToFront(); // } } |