解决方案 »

  1.   

    为何不把 Main_Load(里面的代码 让道 Program里面··放到 Application.Run 之前··
      

  2.   


    把Main_load 里面的代码 放到 program 里面··即 Application.Run 之前:...............
     if (time >= data) {
           string s = @"本程序已过期,请联系作者更新";
            MessageBox.Show(s, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    }else{
         Application.Run(new MainForm());
    }
      

  3.   

    问题可能出在你的AnimateWindow这个方法上。它在动作时,你关闭了窗体,导致这个方法访问了被释放的窗体。
      

  4.   

    你可以 把这句话 
    给注释了,测试一下吗。AnimateWindow(this.Handle, 1000, AW_SLIDE | AW_CENTER);
      

  5.   

    this.Close();之前 要将AnimateWindow停止. AnimateWindow相当于一个循环, 在循环里, 变换主窗体的位置. 如果主窗体Close了, 也就Dispose了. 循环里就拿不到主窗体句柄了. 就异常了.
      

  6.   

    确实是AnimateWindow的问题,关键是我看到网上别人的代码,照着我的修改,可是完全没有问题的呀?什么情况呀
     public partial class Formdonghua : Form
        {
            int y = 0;
            //动画窗体调用,关闭时将向上移出屏幕
            [System.Runtime.InteropServices.DllImport("user32")]
            private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
            const int AW_HOR_POSITIVE = 0x0001;
            const int AW_HOR_NEGATIVE = 0x0002;
            const int AW_VER_POSITIVE = 0x0004;
            const int AW_VER_NEGATIVE = 0x0008;
            const int AW_CENTER = 0x0010;
            const int AW_HIDE = 0x10000;
            const int AW_ACTIVATE = 0x20000;
            const int AW_SLIDE = 0x40000;
            const int AW_BLEND = 0x80000;
            //…………………………………………………………
            public Formdonghua()
            {
                InitializeComponent();
            }        private void Formdonghua_Load(object sender, EventArgs e)
            {
                //动画由小渐大,现在取消
                AnimateWindow(this.Handle, 1000, AW_CENTER | AW_ACTIVATE);            //主界面渐变设置          
                DateTime time = DateTime.Now;
               DateTime dataA = DateTime.Parse("2008-10-12 12:30:01");
                if (time >= dataA)
                {
                    string s = @"本程序已过期,
    请联系作者更新";
                  DialogResult mess=MessageBox.Show(s, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    if (mess == DialogResult.OK)
                    {                 //点确定代码            }
                        this.Close();
                    }
                }
            }
    没找到附件在哪儿上传,大家可以去我的网盘下载看看http://pan.baidu.com/s/1dDGLfXJ(百度网盘好像老抽筋)
    http://yunpan.cn/QTsbsgbsx28Z7 (提取码:f9ed)
    因为修改的比较乱,所以各位将就着看吧,谢谢啦
      

  7.   

    如果用户点了"确定"或超时, 应该先执行[结束动画]的过程, 再执行Close.