Zmiana kolejności buttonów w formie

0

Witam, tworzę sobie dynamiczne guziczki. Gdy nałożę starszy na nowszy, to zasłania on tego nowszego. Jak mógłbym zrobić, żeby nowszy button przysłonił starszy? Próbowałem zamieniać kolejność w liście, ale to chyba nie o to chodziło.

0

Windows Forms czy WPF?
I pokaż kod.

0

Windows Forms

dodawanie nowego buttona:

 private void New_Click(object sender, EventArgs e)
        {
            
            this.button4 = new System.Windows.Forms.Button();
            button4.Cursor = System.Windows.Forms.Cursors.SizeAll;
            button4.Location = new System.Drawing.Point(80, 86 + Y);
            button4.Name = "button4";
            button4.Size = new System.Drawing.Size(33, 23);
            button4.TabIndex = mojeGuziki.Count + 1;
            int text = mojeGuziki.Count + 1;
            button4.Text = text.ToString();
            button4.UseVisualStyleBackColor = true;
            button4.MouseDown += new System.Windows.Forms.MouseEventHandler(this.button4_MouseDown);
            button4.MouseMove += new System.Windows.Forms.MouseEventHandler(this.button4_MouseMove_1);
            button4.FlatStyle = FlatStyle.Popup;
            button4.BackColor = Color.Red;
            
                this.Controls.Add(button4);
                Y += 40;
                mojeGuziki.Add(this.button4);
              
            }
        } 

przesuwanie przycisków

 
private void button4_MouseDown(object sender, MouseEventArgs e)
        {
         for (int i = 0; i < mojeGuziki.Count; i++)
            {
             if ((Button)sender == mojeGuziki[i])
                {
             this.punkt.X = e.X;
             this.punkt.Y = e.Y;
 
             this.mojeGuziki[i].MouseMove += new System.Windows.Forms.MouseEventHandler(this.button4_MouseMove);
          }
          }
        }

private void button4_MouseMove(object sender, MouseEventArgs e)
        {
        for (int i = 0; i < mojeGuziki.Count; i++)
            {
             if ((Button)sender == mojeGuziki[i])
                {
                 int pozY, pozX;
                 pozY = this.mojeGuziki[i].Location.Y + e.Y - this.punkt.Y;
                 pozX = this.mojeGuziki[i].Location.X + e.X - this.punkt.X;
 
                 this.mojeGuziki[i].Location = new Point(pozX , pozY ); 
                 }
             }
         }


private void button4_MouseUp(object sender, MouseEventArgs e)
        {
         for (int i = 0; i < mojeGuziki.Count; i++)
            {
             if ((Button)sender == mojeGuziki[i])
                {
                 int  pozX, pozY;
 
                 pozX = this.mojeGuziki[i].Location.X +e.X - this.punkt.X;
                 pozY = this.mojeGuziki[i].Location.Y + e.Y - this.punkt.Y;
 
                 this.mojeGuziki[i].Location = new Point(pozX ,pozY);
                 this.mojeGuziki[i].MouseMove -= new System.Windows.Forms.MouseEventHandler(this.button1_MouseMove);
                 }
             }
         }

i globalnie

 
Button List<Button> mojeGuziki = new List<Button>();
private System.Drawing.Point punkt;
private int Y;
1

Button.BringToFront() / SendToBack() :)

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