两个窗体,f1 是登陆框 f2 是大框,开始的时候f2 是enable=FALSE。登陆成功后 怎么f1里的参数传个f2 啊。
并启动f2 enable=TRUE

解决方案 »

  1.   

    f1.控件名称.txt, f2.show, f2.enable = true
      

  2.   

    以下代码form1为主窗体,from2为登陆窗体.
    from1代码:    public partial class Form1 : Form
        {
            private string sName;
            private string sPassword;
            public Form1()
            {
                InitializeComponent();
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                Form2 frm = new Form2();
                if (frm.ShowDialog() == DialogResult.OK)
                {
                    this.sName = frm.strName;
                    this.sPassword = frm.strPassword;
                }
                frm.Dispose();           
            }
         }        from2代码:
        public partial class Form2 : Form
        {
            public string strName;
            public string strPassword;
            public Form2()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                this.strName = this.textBox1.Text;
                this.strPassword = this.textBox2.Text;
                this.Close();
            }        private void Form2_Load(object sender, EventArgs e)
            {
                this.AcceptButton = this.button1;
            }
        }
      

  3.   

    呵呵,上面代码有不完善的地方.
            private void Form1_Load(object sender, EventArgs e)
            {
                Form2 frm = new Form2();
                if (frm.ShowDialog() == DialogResult.OK)
                {
                    this.sName = frm.strName;
                    this.sPassword = frm.strPassword;
                }
                else
                    Application.Exit();
                frm.Dispose();           
            }
            private void Form2_Load(object sender, EventArgs e)
            {
                //this.AcceptButton = this.button1;
                this.button1.DialogResult = DialogResult.OK;
            }
      

  4.   

    不是 啊 Form2 frm = new Form2(); 不行 不能在f1里用f2创建对象 那就是新的
    空间了 f2是本来已经打开的
      

  5.   

    最简单的方法就是再添加个模块,用public,不管哪个窗体都能访问,不过这种方法比较低级,高级的那种我写不来
      

  6.   

    2楼的方法Form1一开始是出不来的我的代码如下:public partial class Form1 : Form
        {
            private String m_UserName;
            private String m_Password;        public Form1()
            {
                InitializeComponent();
            }        protected override void OnLoad(EventArgs e)
            {
                base.OnLoad(e);
                this.Enabled = false;
            }        protected override void OnShown(EventArgs e)
            {
                base.OnShown(e);            Form2 f = new Form2();
                if (f.ShowDialog() == DialogResult.OK)
                {
                    // 将Form2的UserName和Password传给Form1
                    m_UserName = f.UserName;
                    m_Password = f.Password;
                    this.Enabled = true;
                }
                f.Dispose();
            }
        }// 登录窗口,一个button,两个textbox
    public partial class Form2 : Form
        {
            private String m_UserName;
            private String m_Password;        public Form2()
            {
                InitializeComponent();
            }        public String UserName
            {
                get { return m_UserName; }
            }        public String Password
            {
                get { return m_Password; }
            }        // button的DialogResult为OK,Form2的AcceptButton为button1
            private void button1_Click(object sender, EventArgs e)
            {
                m_UserName = textBox1.Text;
                m_Password = textBox2.Text;
            }
        }
      

  7.   

    楼主可以参考一下这里,
    Windows窗体间的数据交互
    http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx
    http://blog.csdn.net/zhzuo/archive/2006/05/05/708941.aspx