我以前是用this.Hide();
不知道有没有其他更好的方法

解决方案 »

  1.   

    怎么能这样呢?应该在formMain中创建form1呀,怎么反了?可以在form1中设一个全局变量nOK,当登陆信息对时为true,否则为false,在formMain中定义form1 oform1=new form1();oform1.show();
    再在formMain中判断nOK,如果为true,则继续,为false,则在调用oform1.show();这样就好了。在form1的某button的click事件中写为:
    this.close();
      

  2.   

    主窗体
    Loginform loginf=new Loginform();
    loginf.ShowDialog();//显示这个登录窗口
      

  3.   

    登陆窗体//判断,一些登录数据库,验证过程           
    TestLogin();
    this.close();
      

  4.   

    public string strpart,strname,strgrade;
    public int intclose;
     ..............]
     mianfrm load
    {
    Frmlogin  frmlogin=new Frmlogin();
     frmlogin.ShowDialong();
    if(intclose==1)
    {
    string mainpart=frmlogin.strpart;}
    else 
    {
    this.close()}
    }
    frmloginbuttexit
    {
    this.intclose=0;
    }buttok
    {
    this.close=1;
    }
      

  5.   

    那是当然的了
    formMain frmMain=new formMain();
    是在你窗口类里被生命的变量,的的窗口消亡当然它也会消亡的啊!
      

  6.   

    如果想多个form共存的话
    class MyApplicationContext : ApplicationContext 
    { private Form1 form1;
    private Form2 form2; private MyApplicationContext() 
    {
    form1 = new Form1();
    form2 = new Form2();
    form1.Show();
    form2.Show();
    }
            
        
    [STAThread]
    static void Main(string[] args) 
    {
            
    MyApplicationContext context = new MyApplicationContext(); Application.Run(context); }
    }
      

  7.   

    在你的工程中添加一个Start.cs文件,在文件中手动写进Main()代码段,在Main代码后面添加调用语句:if(!this.login())
             return;
          else
              mainForm.Show();
    Start.cs中再添加下面的函数:
         private bool login()
          { 
            bool LogOK;
            LoginForm form1 = new LoginForm();
            if(form1.ShowDialog(this) == DialogResult.OK)
             {
                LogOK = true;  
             }
             else
                LogOK = false;        return LogOK;
           }不过需要注意的是在你的LoginForm窗体的按钮事件代码中要添中下面之类的语句:
       if(密码验证失败)
        {
           MessageBox.Show("您登录失败了!");
           DialogResult = DialogResult.Cancel;
         }
        else
         {
           DialogResult = DialogResult.OK;
          }
    在你LoginForm窗体的关闭窗体事件代码中,加入DialogResult = DialogResult.Cancel;之类的代码。    当然,上面的DialogResult也可以在窗体的属性中找到的,你找一下吧
      

  8.   

    还没从VB真正升级到VB.NET(C#)啊...
    友情提示:Form继承的是.NET中那个类库啊,查Visual Studio .NET 组合帮助-〉参考〉类库,调用Form的卸载方法Close()即可。
    你这个例子可以如下public class Form1 : System.Windows.Forms.Form
    {
    ...
    public Form frm1;
    ...
    [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
    }
    private void button1_Click(object sender, System.EventArgs e)
    {
    frm1=new Form();
    frm1.Show();
    }
    private void button2_Click(object sender, System.EventArgs e)
    {
    frm1.Close();
    }
    }
      

  9.   

    你那个窗体已经不存在了
    还怎么show?
    多看msdn