ボーダレス フォームがあり、AnimateWindow() メソッドを使用して、フォームを開く、閉じるなどのアニメーションを作成します。私はこのコードを使用します:
[Flags]
enum AnimateWindowFlags
{
AW_HOR_POSITIVE = 0x0000000
AW_HOR_NEGATIVE = 0x00000002,
AW_VER_POSITIVE = 0x00000004,
AW_VER_NEGATIVE = 0x00000008,
AW_CENTER = 0x00000010,
AW_HIDE = 0x00010000,
AW_ACTIVATE = 0x00020000,
AW_SLIDE = 0x00040000,
AW_BLEND = 0x00080000
}
[DllImport("user32.dll")]
static extern bool AnimateWindow(IntPtr hWnd, int time, AnimateWindowFlags flags);
フォームを閉じると、次のコードが機能するようです。
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
AnimateWindow(this.Handle, 100, AnimateWindowFlags.AW_BLEND | AnimateWindowFlags.AW_HIDE);
}
ただし、このコードでフォームを開くと:
private void Form1_Load(object sender, EventArgs e)
{
AnimateWindow(this.Handle, 100, AnimateWindowFlags.AW_BLEND);
}
何も起こらないようです。いくつかの推測とテストを行った後、AnimateWindow() メソッドを使用してフォームをフェードアウトさせることができましたが、それを使用してフォームをフェードインさtime
せても (パラメーターに関係なく) 何もしません。
何か案は?