我知道windows有个API能够使窗体在载入或退出时实现动画效果,比如滑动,滚动,淡入淡出等
但我做了个程序,是在一个主窗体的一个panel内载入不同的usercontrol,这样的话就实现不了载入的动画效果,导致每次按不同的按钮载入不同的界面的时候都是一闪,然后出现界面,很生硬
现在想求有没什么解决办法让载入不同的界面的时候出现一些动画的效果?
我想过用MDI程序,但是因为我的界面是用位图实现的,使用MDI的话会造成背景图显示不了求解!

解决方案 »

  1.   

    private void Form1_Load(object     sender,     System.EventArgs     e)   
        for(double     d=0.01;     d<     1;     d+=0.02)   
        {   
        System.Threading.Thread.Sleep(1);   
        Application.DoEvents();   
        this.Opacity=d;   
        this.Refresh();   
        }参考一下窗体的淡入淡出试试
      

  2.   

    用户自定义控件没有Opacity属性值
      

  3.   

    既然是自定义控件  那能不能给它赋一个Opacity属性呢
      

  4.   

    等待解决方案,顺便问一下控件如何实现Opacity这样的属性?
      

  5.   

    利用Timer控件来控制控件的Opacity属性就可以了若出现的效果比较生硬的话,可以调节Timer控件的interval属性
      

  6.   

    控件没有Opacity属性
    怎么继承实现这个属性?
      

  7.   

    直接往你自定义控件上拖个timer控件,然后在timer事件里改变窗体的透明度就实现淡出淡入了
      

  8.   

    抱歉我不是不懂礼貌
    但能不能麻烦各位把内容看清楚再回答?
    我说的是控件,不是窗体
    窗体淡入淡出还需要Timer么?
    直接用windows API引用一个函数就实现了
    请不要再说窗体的事了
      

  9.   

    Api 函数啊,使用AnimateWindow API函数
      

  10.   

      public const Int32 AW_HOR_POSITIVE = 0x00000001; // 从左到右打开窗口
      public const Int32 AW_HOR_NEGATIVE = 0x00000002; // 从右到左打开窗口
      public const Int32 AW_VER_POSITIVE = 0x00000004; // 从上到下打开窗口
      public const Int32 AW_VER_NEGATIVE = 0x00000008; // 从下到上打开窗口
      public const Int32 AW_CENTER = 0x00000010; //若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展。
      public const Int32 AW_HIDE = 0x00010000; //隐藏窗口,缺省则显示窗口。
      public const Int32 AW_ACTIVATE = 0x00020000; //激活窗口。在使用了AW_HIDE标志后不要使用这个标志。
      public const Int32 AW_SLIDE = 0x00040000; //使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略。
      public const Int32 AW_BLEND = 0x00080000; //使用淡出效果。只有当hWnd为顶层窗口的时候才可以使用此标志。
      public static extern bool AnimateWindow(IntPtr hwnd,int dwTime,int dwFlags); //三个参数分别是,窗体句柄,持续时间,和标志
      

  11.   

    ................................我无语了
    能否请要回答的朋友看清楚问题再回答呢?API貌似只能对顶层窗口才有效,我试了
      

  12.   

    同问 求答案
    是对窗体内的控件的动画效果
    而不是对于窗体
    而且panel貌似没有opacity属性求高人解答