0

私はWindowsフォームを持っています。特定のボタンをクリックしてフォームの拡張をアニメーション化すると、フォームの新しいセクションが表示されます(フォームを作成せずに、そのうちの1つをアニメーション化する必要はありません)。

それは可能ですか?

4

1 に答える 1

0

に頼ることで、十分に素晴らしい効果を得ることができますTimer。ここに、ボタンをクリックした後にメイン フォームのサイズが大きくなるのを「アニメーション化」する方法を示すサンプル コードがあります。すべての変数 (X/Y inc. 値または間隔) を増減することで、アニメーションの「見た目」を完全に制御できます。ボタン ( button1) とタイマー ( timer1) をフォームに追加し、以下のコードを追加するだけです。

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{

    public partial class Form1 : Form
    {
        int timerInterval, curWidth, curHeight, incWidth, incHeight, maxWidth, maxHeight;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            curWidth = this.Location.X + this.Width;
            curHeight = this.Location.Y + this.Height;
            incWidth = 100;
            incHeight = 20;
            maxWidth = 2000;
            maxHeight = 1500;
            timerInterval = 100;
            timer1.Enabled = false;
            timer1.Interval = timerInterval;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            curWidth = curWidth + incWidth;
            curHeight = curHeight + incHeight;
            if (curWidth >= maxWidth)
            {
                curWidth = maxWidth;
            }
            if (curHeight >= maxHeight)
            {
                curHeight = maxHeight;
            }

            this.Width = curWidth;
            this.Height = curHeight;

            if (this.Width == maxWidth && this.Height == maxHeight)
            {
                timer1.Stop();
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
              timer1.Enabled = !timer1.Enabled;
        }
    }
}
于 2013-07-21T13:58:56.783 に答える