Visual C#, Centrowanie kontrolek w kontenerze

0

Hej,
czy ktoś mógłby mi podpowiedzieć co trzeba zrobić, żeby przeciągane kontrolki(w moim przypadku labele) do kontenera(panela) były w nim centrowane? Podaję fragment kodu dotyczący przeciągania/przesuwania kontrolki- nie wiem jak z poprawnością tego, ponieważ dopiero uczę się , ale działa.

 private Point MouseDownLocation;
        

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void label1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                MouseDownLocation = e.Location;
                
            }
            
        }

        private void label1_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                label1.Left = e.X + label1.Left - MouseDownLocation.X;
                label1.Top = e.Y + label1.Top - MouseDownLocation.Y;
            }
        }

        private void panel1_DragDrop(object sender, DragEventArgs e)
        {
            Control Label = e.Data.GetData(e.Data.GetFormats()[0]) as Control;

            if (Label != null)
            {
                Label.Location = this.panel1.PointToClient(new Point(e.X, e.Y));
                this.panel1.Controls.Add(Label);
                
            }
        }

        
        private void panel1_DragOver(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Move; 
        }
1

Label.Location = this.panel1.PointToClient(new Point(e.X, e.Y));

Zamiast e.X,e.Y wyliczasz pozycję na podstawie rozmiarów kontrolek (dodawanej i kontenera).

0

Hmm..coś chyba jest jednak nie tak jak być powinno, ponieważ nie ma realizacji tego co w DragDrop i w związku z tym zmiana e.X i e.Y nie daje efektu. Coś się chyba ze sobą "gryzie". Ktoś pomoże?

1

Musisz od szerokości kontenera odjąć szerokość dodawanej kontrolki i podzielić na dwa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1