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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Visual Studio中使用C#有办法让一个面板缓慢移动吗?相关的知识,希望对你有一定的参考价值。

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

这是我使用的代码。

 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);
    }
}
答案

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

同时,你可以看看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);
    }
}

以上是关于在Visual Studio中使用C#有办法让一个面板缓慢移动吗?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法用 C# 在 Visual Studio 中调用已经存在的表单的函数

为啥visual studio 2013安装后,没有c#模板?

使用Unity时打开C# 弹出opening visual studio一直停在这个界面是啥情况?有啥办法解决?

在 Windows 上通过 Visual Studio C# 和 ASP.NET 使用 Compass

如何在 Visual Studio 2008 中折叠选定的代码块?

有没有办法让 Visual Studio Code 识别 PHP 文件中的 HTML 语法