Справочник по C#

    Исходники по языку программирования CSharp

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

    /
    /
    /
    33 Views


          Я уже писал пост как создавать анимацию в 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);
    }
    

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

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

    0.00 (0%) 0 votes

    moyadcode13
    • Facebook
    • Twitter
    • Google+
    • Linkedin
    • Pinterest
    moyadcode10
    moyadcode11
    moyadcode9