zoukankan      html  css  js  c++  java
  • 跨窗体操作

                                                                  Users uuu = new UsersData().SelectUser(uname, pwd);
     跨窗体操作的时候,如果点开第二个窗体那么第一个窗体就要关闭,但是,一旦关闭第一个窗体那么第二个也会关闭,因为主窗体一关,其余的子窗体都会随着关闭,所以,要使用控件额属性,进行隐藏例如:
     Form2 f2 = new Form2();
                    f2.Show();
                    this.Visible = false;
                    
                    在第二个通过第二个窗体来操控第一个窗体
                     Form1 F1 = null;
            public Form2(Form1 f1)
            {
                InitializeComponent();
                F1 = f1;
                label1.Text = u.NickName + ",欢迎你!";
                F5();
            }
            
            第二个窗体的触发事件
            private void Form2_FormClosing(object sender, FormClosingEventArgs e)
            {
                F1.Close();    注意:不能写f1,因为作用域的问题,所以需要先定义一个F,然后让F=f,这样用F就可以了
            }
            
            最后还要在这里加参数this
            Form2 f2 = new Form2(this);    
                    f2.Show();
                    this.Visible = false;
                    因为要显示第二个窗体的xxx欢迎你,所以需要在构造函数的时候传进一个Users类的参数u,并且,不是u.UserName,而是昵称,注意用label1.Text 接收一下
                     Form1 F1 = null;
            public Form2(Form1 f1, Users u)
            {
                InitializeComponent();
                F1 = f1;
                label1.Text = u.NickName + ",欢迎你!";
                F5();
            }
            那么第一个窗体那里就不能是一个参数了,还应该有个
            Form2 f2 = new Form2(this, uuu);
                    f2.Show();
                    this.Visible = false;
                    
                    
                    
                    
                    实例化出窗体三
                    private void button1_Click(object sender, EventArgs e)
            {
                Form3 f3 = new Form3(this);      注意这里的this
                f3.Show();
            }
                    
          public partial class Form3 : Form
            {
            Form2 F2 = null;
            public Form3(Form2 f2)
            {
                InitializeComponent();
    
                F2 = f2;
            }
    
            private void textBox1_TextChanged(object sender, EventArgs e)
            {
                string s = textBox1.Text;
                F2.label2.Text = s;
    
            }
                                                                  Users uuu = new UsersData().SelectUser(uname, pwd);
     跨窗体操作的时候,如果点开第二个窗体那么第一个窗体就要关闭,但是,一旦关闭第一个窗体那么第二个也会关闭,因为主窗体一关,其余的子窗体都会随着关闭,所以,要使用控件额属性,进行隐藏例如:
     Form2 f2 = new Form2();
                    f2.Show();
                    this.Visible = false;
                    Visible:确定该控件是显示的还是隐藏的(在属性的行为里)
                    这时如果关闭第二个的话,那么第一个并没有关闭,那样是无法关闭的,那么就应该在第二个通过第二个窗体来操控第一个窗体,那么就需要(用到属性行为里的fromclosing),在第二个窗体的构造函数里传入第一个窗体的类名和参数,
                     Form1 F1 = null;
            public Form2(Form1 f1)
            {
                InitializeComponent();
                F1 = f1;
                label1.Text = u.NickName + ",欢迎你!";
                F5();
            }
            
            然后再在第二个窗体的触发事件里双击点fromclosing,
            private void Form2_FormClosing(object sender, FormClosingEventArgs e)
            {
                F1.Close();    注意:不能写f1,因为作用域的问题,所以需要先定义一个F,然后让F=f,这样用F就可以了
            }
            然后写F1.Close();就是在关闭第二个窗体前就关闭第一个窗体,
            最后还要在这里加参数this,这个this代表的是第一个窗体,在哪个里写就代表哪个,下面这一步是在第一个窗体里写的,因为是点击第一个窗体要开启第二个窗体,所以实例化出第二个窗体:
            Form2 f2 = new Form2(this);    
                    f2.Show();
                    this.Visible = false;
                    因为要显示第二个窗体的xxx欢迎你,所以需要在构造函数的时候传进一个Users类的参数u,并且,不是u.UserName,而是昵称,注意用label1.Text 接收一下
                     Form1 F1 = null;
            public Form2(Form1 f1, Users u)
            {
                InitializeComponent();
                F1 = f1;
                label1.Text = u.NickName + ",欢迎你!";
                F5();
            }
            那么第一个窗体那里就不能是一个参数了,还应该有个
            Form2 f2 = new Form2(this, uuu);
                    f2.Show();
                    this.Visible = false;
                    
                    
                    
                    
                    点击第二个窗体,打开第三个窗体,并且使第二个窗体的label1.Text随着第三个窗体的combobox.Text的变化而实时变化
                    首先在第二个窗体的按钮里写点击事件,实例化出窗体三
                    private void button1_Click(object sender, EventArgs e)
            {
                Form3 f3 = new Form3(this);      
                f3.Show();
            }
                    然后在窗体三的文本框里找到textbox1.Textchanged,
                     public partial class Form3 : Form
        {
            Form2 F2 = null;
            public Form3(Form2 f2)
            {
                InitializeComponent();
    
                F2 = f2;
            }
    
            private void textBox1_TextChanged(object sender, EventArgs e)
            {
                string s = textBox1.Text;
                F2.label2.Text = s;
    
            }
  • 相关阅读:
    cocos2d-x C++的do...while(0)另类使用方法
    C++ Virtual详解
    xcode5向APP store上传应用的时候注意点
    IOS7学习之路九(ios7自定义UIAlertView)
    IOS7学习之路八(iOS 禁止屏幕旋转的方法)
    Exception in thread "main" java.lang.ClassCastException: com.sun.proxy.$Proxy8 cannot be cast to XXX-------动态代理(proxy-target-class属性的意义)
    Maven支持第三方库大全
    EOS page问题
    EOS页面流参数传值问题
    XML中转义字符及使用
  • 原文地址:https://www.cnblogs.com/yunpeng521/p/7168944.html
Copyright © 2011-2022 走看看