C#单击button后关闭本窗口弹出新窗口怎么实现?

解决方案 »

  1.   

    本窗体声明一个全局变量,比如Form2 frm;创建窗体frm = new Form2();
    frm.Show();
    按钮点击if (null != frm)
    {
      frm.Dispose();
      frm = null;
    }
      

  2.   

    If (Data.Tables(0).Rows.Count > 0) Then
                            Me.Hide()
                            MenuList.ShowDialog()
                            Me.Close()
                        Else
                            MsgBox("用户名或密码错误!", 0, "失败")
    End If用过。
      

  3.   

    我意思是 在Form1 中有个Button
    当我点这个BUtton  然后关闭Form1  然后打开 Form2
      

  4.   


    我怎么不行 在button中 使用ME.的方法 却提示不行!
      

  5.   

    Form1的名字.hidden
    Form2的名字.show
      

  6.   

    Me就是VB中的this
    如果这两个窗口是父子关系,就不能关闭而只能隐藏如果不是父子关系就好办了,form2.Show() form1.Close()
      

  7.   


    private void button1_Click(object sender, EventArgs e)
            {
                if (textBox1.Text == "")
                {
                    MessageBox.Show("IP地址不能为空!");
                }
                else if (textBox1.Text.Length > 15 || textBox1.Text.Length < 7)
                {
                    MessageBox.Show("请查看IP地址是否大于15位或小于7位!");
                }
                else
                {
                    ;
                }
            }现在这段我想在最后的ELSE 里加上关闭本窗口打开Form2窗口
      

  8.   


    this.Hide();
    Form2 frm = new Form2();
    frm.Show();
    加上这个!
              
      

  9.   

    Form2 frm = new Form2();
    这里第1个 Form2 代表什么?
      

  10.   

    newwindow.show();
    oldwindow.close();
      

  11.   

    这个需要三个线程的首先第一个主线程,可以是一个隐藏的窗体,也可以只是一个线程而已,不过建议是一个空窗体,可以接受message然后,这样划分,A,B,C  3个窗体,A就是程序创建第一个窗体,也就是主线程,之后的每个窗体,其实都是在A的基础上创建的线程,一但A销毁了,那么子线程都销毁,这是。net的机制在A上面,先通过 B frm=new B() 创建B窗体然后,你需要关闭B窗体、打开C窗体的时候,有两个解决办法第一种:postmessage方法    关闭B窗体的时候,向A窗体发送一条消息,通知A窗体创建C窗体,然后B窗体自己销毁
        postmessage(A.handle,CUMSTOM_MESSAGE,0,0);
       this.close;第二种:替换付线程(未验证)    关闭B窗体的时候,可以就在B窗体里面创建C窗体    C frm=new C();
        C.parent=this.parent;
        this.close;
    就是这样了!
      

  12.   

    首先设置button的DialogResult为Ok,然后在点击方法中写入:
    showform form = new showform ();
    form.show().
    就可以了
      

  13.   

    我2个Form2 都提示 “未能找到类型或命名空间名称"Form2"(是否缺少using指令或程序集引用?)”
      

  14.   

    this.Hide();
    Form2 frm = new Form2();
    frm.Show();Form2 就是你要打开的窗体的名字啊。不会找不到吧
      

  15.   


    是不是你没在解决方案中添加Form2窗体?
      

  16.   

    private void button1_Click(object sender, EventArgs e)
            {
                if (MessageBox.Show("点击确定关闭Form1","打开Form2",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK)
                {
                    Form2 fm2 = new Form2();
                    this.Hide();
                    fm2.Show();
                }
            }
      

  17.   

    SystemMenuForm systemMenuForm = new SystemMenuForm();
                this.Hide();Application.ExitThread();
    SystemMenuForm 是窗体2 
     在窗体1的单击事件上写上
    SystemMenuForm systemMenuForm = new SystemMenuForm();
    this.Hide();Application.ExitThread();