Witam

Otóż tworzę dynamicznie w pętli foreach etykiety (Label). Takie Etykiety muszą byż ograniczone liniami (LineShape). Obiekty LineShape natomiast muszą być na panelu. Aby móc je wyświetlić trzeba LineShape położyć na ShapeContainer, następnie ShapeContainer trzeba położyć na panel. Może przedstawię mniej więcej hierarchie:

Label -> LineShape -> ShapeContainer -> Panel

Przykładowy kod:

public void LabelEditCreate(string phoneId)
        {
            Label edit = new Label();
            edit.Location = new Point(500, presenter.heightRectangle + 8);
            edit.Font = new Font(edit.Font.FontFamily, (float)presenter.fontSize);
            edit.ForeColor = Color.Black;
            edit.Name = phoneId;
            edit.Enabled = true;
            edit.MouseClick += new MouseEventHandler(PhoneNumberEdit);
            Console.WriteLine("Dodałem zdarzenie");
            edit.Text = " Edytuj";
            this.panel1.Controls.Add(edit);
        }

public void CreateRectangle()
        {
            rectangle.Location = new Point(presenter.positionRectangleX, presenter.positionRectangleY);
            rectangle.Size = new Size(presenter.widthRectangle, presenter.heightRectangle);
            rectangle.BorderColor = Color.Gainsboro;
            container.Shapes.Add(rectangle);
            panel1.Controls.Add(container);
        } 

Przy takim kodzie zdarzenie nie działa. Natomiast gdy zakomentuje linię panel1.Controls.Add(container); w funkcji CreateRectangle - działa. Proszę o podpowiedź.