[C#] Contextmenü für Labels

Jack84

Grünschnabel
Ich habe ein problem mit dem Contextmenü bei Labels.

Ich lasse die Labels dynamisch erstellen und möchte für jeden ein Contextmenü aufrufen lassen. Dieses soll über die Rechte Maustaste aufgerufen werden. Das funktioniert auch soweit. Nur das, dass Contextmenü immer bei dem ersten Label, das erstellt wird, angezeigt wird, obwohl ich mit der Maus auf einen anderen Label stehe.

hier der Code ausschnitt:
Code:
private void label_erstellen_server(int left, int top, int umbruch, int abstand, int anzahl, string[] text,Panel panel)
        {
            
            for (int i = 0; i < anzahl; i++)
            {
                int test = 0;
               
                if ((((abstand * anzahl) + top) > umbruch))
                {
                    if (test == 0)
                    {
                        left += 200;
                        top = 5;
                        abstand = 22;
                    }
                    test = 1;
                }   
                
                
                Label l = DynForm.createLabel();
                l.MouseDown += new System.Windows.Forms.MouseEventHandler(label_MouseDown);
                l.Left = left;
                l.Width = 180;
                l.Top = top;
                l.Text = text[i];
                
                top += abstand;
                panel.Controls.Add(l);
            }
            
        }

private void label_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            

            // abfrage ob rechte maustaste gedrueckt wurde
            if (e.Button == MouseButtons.Right)
            {
                Point p = new Point(e.X, e.Y); 
                
                    // laesst das contextmenu aufpoppen
                    this.contextMenuStrip1.Show(panel2,p);
                
            }
        }

Es wäre nett wenn sich das einer von euch mal anschauen würde.

Gruß Jack84
 
Füg im Designer ein ContextMenü ein und beim erstellen der Labels verweist du direkt auf das ContextMenü, dann brauchst du die Event Prüfung nicht und das Menü wird auch aufgerufen über die Tastatur (diese ContextMenü Taste :rolleyes:).

PHP:
l.ContextMenuStrip = contextMenuStrip1;

Spyke (http://www.iv-interactive.de)
 
Danke für die Anwort hat mir echt weitergeholfen. Manchmal kommt man einfach nicht auf die einfachsten Sachen.

gruß
Jack
 

Neue Beiträge

Zurück