Есть ли способ заставить панель двигаться медленно в Visual Studio, используя C#? - PullRequest
0 голосов
/ 19 апреля 2020

Я закодировал форму, в которой панель перемещается при нажатии кнопки до высоты нажатой кнопки. Однако я хочу, чтобы панель двигалась медленно, а не мгновенно.

Это код, который я использовал:

 public partial class Form1 : Form
 {
    public Form1()
    {
        InitializeComponent();
        MovePanel(btn1);
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    }

    private void MovePanel(Control c)
    {
        Panel.Height = c.Height;
        Panel.Top = c.Top;
    }
    private void btn1_Click(object sender, EventArgs e)
    {
        MovePanel(btn1);
    }

    private void btn2_Click(object sender, EventArgs e)
    {
        MovePanel(btn2);
    }

    private void btn3_Click(object sender, EventArgs e)
    {
        MovePanel(btn3);
    }
}

1 Ответ

0 голосов
/ 19 апреля 2020

Я бы очень хотел увидеть решение на основе таймера с нуля.

Тем временем вы можете проверить что-то вроде dot- net -переходов, доступных на NuGet.

using Transitions;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        btn1.Click += btn_Click;
        btn2.Click += btn_Click;
        btn3.Click += btn_Click;

        MovePanel(btn1);
    }

    private void MovePanel(Control c)
    {
        var t = new Transition(new TransitionType_Linear(500));
        t.add(Panel, "Height", c.Height);
        t.add(Panel, "Top", c.Top);
        t.run();
    }

    private void btn_Click(object sender, EventArgs e)
    {
        MovePanel(sender as Control);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...