跨窗體操作
阿新 • • 發佈:2017-07-23
按鈕 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; }
跨窗體操作