当前位置:编程学习 > C#/ASP.NET >>

动态显示窗体问题


        const int AW_HOR_POSITIVE = 0x0001;//自左向右显示窗口,该标志可以在滚动和滑动中使用。使用AW_CENTER标志时,该标志被忽略
        const int AW_HOR_NEGATIVE = 0x0002;//自右向左显示窗口,该标志可以在滚动和滑动中使用。使用AW_CENTER标志时,该标志被忽略
        const int AW_VER_POSITIVE = 0x0004;//自顶向下显示窗口,该标志可以在滚动和滑动中使用。使用AW_CENTER标志时,该标志被忽略
        const int AW_VER_NEGATIVE = 0x0008;//自下向上显示窗口,该标志可以在滚动和滑动中使用。使用AW_CENTER标志时,该标志被忽略
        const int AW_CENTER = 0x0010;//若使用AW_HIDE标志,则使窗口向内侧重叠,否则向外扩展
        const int AW_HIDE = 0x10000;//隐藏窗体
        const int AW_ACTIVATE = 0x20000;//激活窗体,在使用AW_HIDE标志就不要使用这个标志
        const int AW_SLIDE = 0x40000;//使用滑动类型动画效果,在使用AW_CENTER标志后这个标志就被忽略
        const int AW_BLEND = 0x80000;//使用淡入效果

        //声明API原形
        [DllImport("user32")]
        private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);

AnimateWindow(dlg.Handle, 3000, AW_SLIDE | AW_ACTIVATE | AW_VER_NEGATIVE);

调用了API函数实现窗体从下往上滚动显示,可是在滚动过程中,窗体的内容没有显示,整片为窗体的背景色,待窗体滚动完成后才能显示窗体的BUTTON,之类的内容,问怎么样才能在滚动过程中就显示窗体的所有控件?? --------------------编程问答-------------------- 把对函数的调用放到Load事件里,或重写OnLoad来调用,代码如下:


protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
AnimateWindow(this.Handle, 3000, AW_SLIDE | AW_ACTIVATE | AW_VER_NEGATIVE);
}


而不要在构造函数里来调用,因为这个时候窗体的控件可能没有正常的被初始化而看不到。 --------------------编程问答-------------------- 在Paint事件里调用这个方法,或者把OnPaint方法重写。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,