在Visual Studio中使用C#有办法让一个面板缓慢移动吗?

问题描述 投票:0回答:1

我已经编写了一个表格,当一个按钮被点击时,面板会移动到被点击按钮的高度。然而,我想让面板缓慢移动,而不是立即移动。

这是我使用的代码。

 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);
    }
}
c# forms visual-studio
1个回答
0
投票

我真的很想看到一个基于定时器的解决方案,从头开始。

同时,你可以看看NuGet上的dot-net-transitions之类的东西。

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);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.