我做了一个权限设定,放在load事件里,当没有查看权限的时候,就this.close(),结果我发现this.close()放在load事件里执行就报错,不会去关闭窗体,提示错误为 执行 CreateHandle() 时无法调用值 Close()。 
该怎么办呢

解决方案 »

  1.   

    提示一下,是在MDI窗体里打开的时候,
      

  2.   

    委托事件试试?你的load事件()
    {
       if 权限不对
           xxxx.FormClosed += new FormClosedEventHandler(saveDocument_FormClosed);
       xxxx.show();
    }void xxxx_FormClosed(object sender, FormClosedEventArgs e)
                {
                    xxxx.FormClosed -= new FormClosedEventHandler(xxxx_FormClosed);
                    xxxx.Dispose();
                    xxxx = null;
                }
      

  3.   

    不知道你想做什么,既然你打开一个窗口,那么为什么要close 了?感觉你解决问题的思路首先就有问题~~~
      

  4.   

    可以通过
    if(1==1)
                this.Dispose();
    来实现窗体的关闭~~~
      

  5.   

    private void Form5_Load(object sender, EventArgs e)
            {
                if (1 == 1)
                    this.Dispose();
            }
      

  6.   

    使用OnShow  事件,干吗非要塞进Load里面
      

  7.   

    同意 11 楼 
    思路不好
    如果有权限 则打开窗体 如果没有权限 不需要先打开 然后又关闭 
      if (有权限)
       { newform aa=new newform();// newform 是你要打开的窗体的名称
         for (int x = 0; x < this.MdiChildren.Length; x++)
         {
          Form Childform = (Form)this.MdiChildren[x];
          Childform.Close();
          }
          aa.MdiParent = this;
          aa.WindowState = FormWindowState.Maximized;
          aa.Show();
          }
      else//没有权限
       { messagebox.show("没有权限");} 我想我上面的代码对楼主应该有点帮助吧 呵呵
     
      

  8.   

    我试过不行,报错了,提示为 执行 CreateHandle() 时无法调用值 Dispose()。
      

  9.   

    对头,你要想打开就打开,想不打开就不要new了,干吗要在load中判断权限,把权限的判断提前到new之前
      

  10.   

    最好是new前判断是不是要new不过在load里close也没发生错误么,lz 是其他问题吧using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace WindowsApplication58
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)
            {
                this.Close();
            }
        }
    }
      

  11.   

    如果说是俩个项目A,B;A调用B,如果A是登录状态,则可以打开B;如果A没有登录,则不能打开B(即你单独运行B时,B是打不开的,需从A获得登录名不能为空);此时如何判断是否有权限打开B呢,因为B是单独项目,在A判断是无效的,那该如何操作。借机让大家帮忙。。
      

  12.   

    不用close()你用返回不可以吗,影藏都可以呀。应为在Load中窗体还没有成型所以就不能Close()
      

  13.   

    非要这样做的话,可以用timer控件,将this.close()写在timer的tick事件里
      

  14.   

    this.dialogueresult = dialogueresult.cancel;就可以了。