私はWindowsフォームを持っています。特定のボタンをクリックしてフォームの拡張をアニメーション化すると、フォームの新しいセクションが表示されます(フォームを作成せずに、そのうちの1つをアニメーション化する必要はありません)。
それは可能ですか?
に頼ることで、十分に素晴らしい効果を得ることができます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;
}
}
}