-3

私はmdi親にロードする子フォームを持っています。この子フォームは、ロード時にスライド効果があり、画面の左側から来て、画面の中央に設定されます(これは単純なタイマーで行いました)。

問題はdockstyle、フォームをfillスクロールバーに設定しないと機能せず、設定dockstyleするfillとスライド効果が機能せず、フォームが単純に読み込まれることです。

これはform1のボタンです:

    Timer timerPrevMonth = new Timer();
    //reserve_vaght_azar is the form that will be load in sliding effect
    reserve_vaght_azar reservevaghtazar = null;
    private void btn_prev_dey_Click(object sender,EventArgs e)
    {

        reservevaghtazar = new reserve_vaght_azar();
        reservevaghtazar.StartPosition = FormStartPosition.Manual;
        reservevaghtazar.Location = new Point( this.Location.X-Width,Location.Y );
        reservevaghtazar.MdiParent = MdiParent;
        this.TopMost = true;
       //here is dockstyle
       // reservevaghtazar.Dock=DockStyle.Fill;
        reservevaghtazar.Show();
        timerPrevMonth.Start();
    }

これはタイマー機能です:

    void timerPrevMonth_Tick(object sender,EventArgs e)
    {
        timerPrevMonth.Stop();
        reservevaghtazar.Location = new Point( reservevaghtazar.Location.X +15,this.Location.Y );

        if (this.Location.X-reservevaghtazar.Location.X <5)
        {
            reservevaghtazar.Location = new Point( this.Location.X,this.Location.Y );
            this.TopMost = false;
            reservevaghtazar.BringToFront();
            reservevaghtazar.Focus();

        }
        else
            timerPrevMonth.Start();
    }

form1のボタンを押すと、フォームreserve_vaght_azarがスライド効果でロードされます

4

1 に答える 1

0

私はそれを解決しました!

私は単にreservevaghtazar.Dock=DockStyle.Fill;後に追加しましたreservevaghtazar.Focus();

問題は、スライド フォームが画面に完全に読み込まれる前にフォームをドッキングしていたことです。ドッキング ラインの位置を変更して解決しました。

しかし、フォームがMdiの親に入力されていない場合、スクロールバーが機能しないのは非常に奇妙です。

于 2012-12-19T21:18:26.190 に答える