1. 程式人生 > >跨窗體操作

跨窗體操作

按鈕 bsp .text ring 屬性 構造函數 點擊 pub 也會

                                                              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;

        }

跨窗體操作