Нужно сделать так, чтобы при наведении на видимую часть 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 раскрывалась плавнее