首先 我目前有三个窗体一 登陆窗体二 主窗体三  取数据窗体
我的目的 首先运行登陆窗体  进过验证 进入主窗体    在主窗体上有一个按钮 弹出取数据窗体  取数据窗体上边有两个按钮一个是确定  取到数据之后插入数据库  返回主界面 这个是可以的  还有一个是取消按钮 即单击此按钮时 返回到主窗体  我是用this.close()来关闭取数据窗体的 但是在close 之后 又会执行主窗体的代码 造成问题请问要怎么关闭此窗体 返回到主窗体PS :我的取数据的窗体的确定按钮事件执行结果是返回一个 DataTable 给主窗体  主窗体的某一个方法调用该DataTable   作为主窗体控件的数据源            DataTable dtuserinfo = new DataTable();
            dtuserinfo = userinfoselect.getSource();              userinfoselect.getSource();  //取数据窗口的取数据方法

解决方案 »

  1.   

    将主窗体的  datatable 作为一个参数 传给 取数据窗体取数据窗体 按 查询 将datatable 绑定   按关闭 就this.close
    我不是很明白LZ 意思 不知道有没有理解错了
      

  2.   

    主窗体 form=new 主窗体();
    form.show();
    this.Hide();
      

  3.   

    如果需要保存窗体状态就用show()和Hide()。否则重新new
      

  4.   


    我是主窗体弹出查询窗口 这个查询窗口查询后得到一个datatable  再把这个datatable返回给主窗体 作为主窗体的数据源这个已经做好了 查询没问题  关键是查询窗口上的 取消 按钮 我是想着 按取消 关闭查询窗口 就是不查询 回到上一步 
      

  5.   


    if(form3.ShowDialog() != DialogResult.OK) return;
      

  6.   


    怎么可能呢!1、把"取消"按钮设置为 Form.CancelButton
    2、删除 "取消"按钮的 Click 事件
      

  7.   

            private void AddUser_Load(object sender, EventArgs e)
            {
                this.CancelButton = BtnCancel;
            }我是这样设置的 但是问题还是一样啊 
      

  8.   


     private void BtnOK_Click(object sender, EventArgs e)
            {
                try 
                {
                    if (txtName.Text.Trim() == "") // && txtPassword.Text != ""
                    {
                        MessageBox.Show("用户名不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else if (txtName.Text.Trim() != "" && txtPassword.Text == "")
                    {
                        MessageBox.Show("密码不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else if(comBoxSort.Text == "请选择权限")
                    {
                        MessageBox.Show("若不选择权限,则默认为系统操作员", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        if(username(txtName.Text) > 0)
                        {
                            MessageBox.Show("您添加的用户已存在", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                        {
                            AddInfo();
                            this.Close();
                            
                        }   
                    }
                               }去定按钮的事件中调用了两个方法 private void BtnCancel_Click(object sender, EventArgs e)
            {
                this.Close();
            }取消按钮的目的是 关闭此窗口 回到主窗口
    下边是主窗体调用该窗体的方法   在取数据窗体中单击 取消按钮的时候 先执行完 CLOSE()方法然后会在执行到adduser.ShowDialog();
     public void AddUserInof()
            {
                UserAdd adduser = new UserAdd();
                adduser.ShowDialog();
                dataGridViewManager.Show();            dataGridViewManager.DataSource = adduser.AddInfo();        }
      

  9.   


    // 1、BtnOK_Click 事件中 this.Close(); 改为
    this.DialogResult = DialogResult.OK;
    // 2、删除 BtnCancel_Click 事件,将按钮设为 Form 的 CancelButton// 父窗口中
    if(adduser.ShowDialog(this) == DialogResult.OK)
    {
        dataGridViewManager.Show();
        dataGridViewManager.DataSource = adduser.AddInfo();
    }