Домой Windows Form Эффект скольжения в Windows Form приложениях в C #: Справочник по C#

Эффект скольжения в Windows Form приложениях в C #: Справочник по C#

529
0


      Я уже писал пост как создавать анимацию в Windows Form и сейчас представлю вам как можно использовать этот метод на практике!

На понадобятся две формы:
1)Form1 — главная
)Form — дочерняя

В главной форме прописываем вызов второй, так же делаем проверку открыта она уже или нет:

private void button1_Click(object sender, EventArgs e)
{
bool IsOpen = false;
for (int i = 0; i <= Application.OpenForms.Count-1; i++)
{
// Ищем нужную форму
if (Application.OpenForms[i].Name == "Form")
{
//Если форма уже открыта то передаем ей фокус
IsOpen = true;
Application.OpenForms[i].Focus();
break;
}
}
if (IsOpen == false)
{
//Если форма не открыта
//То вызываем ее
Form form = new Form();
form.Name = "Form";
form.Show();
}
}

Во второй форме «Form» прописываем анимацию загрузки, просто вставив вот этот код:

[Flags]
enum AnimateWindowFlags
{
AW_HOR_POSITIVE = 0x00000001,
AW_HOR_NEGATIVE = 0x0000000,
AW_VER_POSITIVE = 0x00000004,
AW_VER_NEGATIVE = 0x00000008,
AW_CENTER = 0x00000010,
AW_HIDE = 0x00010000,
AW_ACTIVATE = 0x0000000,
AW_SLIDE = 0x00040000,
AW_BLEND = 0x00080000
}
[DllImport("user3.dll")]
static extern bool AnimateWindow(IntPtr hWnd, int time, AnimateWindowFlags flags);

protected override void OnLoad(EventArgs e)
{
int WidthOfMain = Application.OpenForms["Form1"].Width;
int HeightofMain = Application.OpenForms["Form1"].Height;
int LocationMainX = Application.OpenForms["Form1"].Location.X;
int locationMainy = Application.OpenForms["Form1"].Location.Y;

this.Location = new Point(LocationMainX + WidthOfMain + 5, locationMainy + 0);
AnimateWindow(this.Handle, 500, AnimateWindowFlags.AW_SLIDE | AnimateWindowFlags.AW_HOR_POSITIVE);
}
//Закрываем форму
private void button_Click(object sender, EventArgs e)
{
this.Close();
}
//Анимация плавного угасания при закрытии
private void Form_FormClosed(object sender, FormClosedEventArgs e)
{
AnimateWindow(this.Handle, 1000, AnimateWindowFlags.AW_BLEND | AnimateWindowFlags.AW_HIDE);
}

Вот так получилось у меня:

ЧИТАТЬ ТАКЖЕ:  Загружаем GIF: Справочник по C#

Эффект скольжения в Windows Form приложениях в C #: Справочник по C#

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь