0

Нужно сделать так, чтобы при наведении на видимую часть Panel она увеличивалась в ширине и отображала кнопки, находящиеся на ней. При убирании мыши Panel обратно сворачивается. Я сделал увеличение через событие MouseEnter и уменьшение через MouseLeave, но при наведении на кнопку добавленную в список Controls этой Panel, панель сворачивается. Вот код

for (int i = 0; i < files.Length; i++)
            {
                yt_Button theory_btn = new yt_Button();
                theory_btn.Name = files[i];
                theory_btn.BackColor = Color.Purple;
                theory_btn.Text = Path.GetFileName(files[i]);
                theory_btn.Width = 320;
                theory_btn.Location = new Point(50, 50 + i * 50);
                forButtonPanel.Controls.Add(theory_btn);
                theory_btn.Click += theory_btn_Click;
                theory_btn.MouseEnter += forButtonPanel_MouseEnter;
            }

и события

 private void forButtonPanel_MouseEnter(object sender, EventArgs e)
        {
            int wantWidth = 420;
        while (forButtonPanel.Width != wantWidth)
        {
            forButtonPanel.Width++;
        }
    }

 private void forButtonPanel_MouseLeave(object sender, EventArgs e)
        {
            int wantWidth = 32;

            while (forButtonPanel.Width != wantWidth)
            {
                forButtonPanel.Width--;
            }
        }

while для того, чтобы Panel раскрывалась плавнее

4per
  • 2,696

0 Answers0