Ik maak verschillende pictureboxen aan in één parent picturebox met volgende code:
Dit werkt prima. Nu heb ik een contextmenu geplaatst die ik aanroep op de rechtermuisknop:
Dit werkt ook prima. Nu heb ik een button in het contextmenu die de geklikte picturebox moet verwijderen, dit lukt niet.
Wat zie ik over het hoofd? x blijft continu null, is dat normaal?
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| private void btn_transfo_MouseDown(object sender, MouseEventArgs e) { teller_transfo += 1; PictureBox transfo = new PictureBox(); transfo.Name = "transfo" + teller_transfo; transfo.ClientSize = new Size(50, 50); transfo.SizeMode = PictureBoxSizeMode.StretchImage; try { transfo.Image = Image.FromFile(@"c:\pic\transfo.jpg"); } catch (Exception error) { MessageBox.Show(error.Message, "Cannot find pic", MessageBoxButtons.OK, MessageBoxIcon.Error); } transfo.MouseDown += new MouseEventHandler(transfo_MouseDown); transfo.MouseUp += new MouseEventHandler(transfo_MouseUp); transfo.MouseMove += new MouseEventHandler(transfo_MouseMove); transfo.MouseDoubleClick += new MouseEventHandler(transfo_MouseDoubleClick); transfo.MouseClick += new MouseEventHandler(transfo_MouseRightClick); picCanvas.Controls.Add(transfo); this.DoDragDrop(transfo, DragDropEffects.Move); } |
Dit werkt prima. Nu heb ik een contextmenu geplaatst die ik aanroep op de rechtermuisknop:
C#:
1
2
3
4
5
6
7
8
| void transfo_MouseRightClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { PictureBox x = sender as PictureBox; cxt_Transfo.Show(x, new Point(e.X, e.Y)); } } |
Dit werkt ook prima. Nu heb ik een button in het contextmenu die de geklikte picturebox moet verwijderen, dit lukt niet.
C#:
1
2
3
4
5
| private void cxt_btn_transfoVerwijder_MouseDown(object sender, MouseEventArgs e) { PictureBox x = sender as PictureBox; picCanvas.Controls.Remove(x); } |
Wat zie ik over het hoofd? x blijft continu null, is dat normaal?