要拿子視窗的物件來用~~~~
或是WEB FORM之間的親子搞來搞去你儂我儂~
卻很少在使用WINFORM的情況下~
新開啟的視窗要使用主視窗的物件~~
摁~仔細想想還真的沒碰過這個問題~
順便筆記一下幾個常見的WINFORM傳值的方法吧~
WEBFORM 的傳值大家應該都很會了XDD
Ex. Form1 A(Main Form) , Form2 B(Child Form)
情況1.
A開B
A要等待B有熱烈的回應才肯繼續>///<
Form1的部分程式碼
Form2 B = new Form2(); B.Text = textBox1.Text; //或是兩行遍一行Form2 B = new Form2(textBox1.Text); if (B.ShowDialog() == DialogResult.OK) { this.textBox1.Text = B.Text; }
Form2的部分程式碼
public Form2() { InitializeComponent(); } public Form2(string Text) { InitializeComponent(); textBox1.Text = Text; } public string Text { set { textBox1.Text = value; } get { return textBox1.Text; } }
情況2.
只有A要B~B不要A~
又懶得寫set & get
那就把B的Access Modifiers提升(public protected private internal)
這邊改成internal應該就可以了
Form1的部分程式碼
Form2 B = new Form2(); B.Show(); textBox1.Text = B.textBox1.Text;
Form2的部分程式碼
internal System.Windows.Forms.TextBox textBox1;
情況3.
B要A的全部>///<(我要的東西)
方法1.
Form1的部分程式碼
Form2 B = new Form2(); B.Owner = this; B.Show();
Form2的部分程式碼
((Form1)this.Owner).textBox1.Text = "我要動你!!!!!";
方法2.
Form1的部分程式碼
Form2 B = new Form2(this); B.Show();
Form2的部分程式碼
public LinkList(Form1 A) { InitializeComponent(); this.Tag = A; }然後
((Form1)this.Tag).textBox1.Text = "我要控制你的全部>///<";
情況4.
用MDIContainer(((不過這樣子視窗全都在父視窗裡面了~太害羞了~不是我要的)))
Form1的部分程式碼
this.IsMdiContainer = true; Form2 B = new Form2(); B.MdiParent = this; B.Show();
Form2的部分程式碼
this.Parent.FindForm().textBox1.Text = "我在你的裡面~(羞";
Lucky Club Casino Site - Lucky Club Live Casino
回覆刪除Lucky Club Casino is your trusted and trusted online casino that is safe and regulated in the UK. · Live Dealer · Mobile casino · Live Roulette · Roulette luckyclub