看板 C_Sharp 關於我們 聯絡資訊
抱歉 小弟弟算是程式新手 我寫2個表單Form1, Form2 打算在form2設定一個按鍵讓form1裡的一個布林變數打開 我的做法是這樣,請各位高手幫我看看是不是那裡錯了 先在Form1裡宣告一個公用變數開關 按Form1裡的button 會跳出form2: public partial class Form1 : Form { public bool a = false; private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Owner = this; } } 而form2裡也設定一個button, 按下去讓form1的a打開: private void button1_Click(object sender, EventArgs e) { Form1 f1 = (Form1)this.Owner; f1.a=true; this.close(); } 照裡來說, 應該回到form1裡, a會是true才對啊??? 為啥我在執行時會出現錯誤呢? 請各位高手幫幫忙...謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 119.14.168.8
largesperm:妳用 new 就是新的 instance 了 不是原本的 form1 04/28 23:02
largesperm:你要把整個 form 或是 boolean 傳過去 04/28 23:02
largesperm:啊 看錯 忽略第一個推文 04/28 23:04
largesperm:我都是把要改變的變數或是整個 form 傳給另一個 form 04/28 23:05
largesperm:你的 this.Owner 第一次看到 剛剛 google 了一下 好像 04/28 23:07
largesperm:可以耶 哈哈 不好意思 04/28 23:07
largesperm:嗯 這種方法真酷! 多謝 不過正解還請其他前輩解惑 04/28 23:12
evirtues:怎樣的錯誤? 這方法是對的,a的確會被改成true 04/29 00:34
evirtues:如果我猜的沒錯 你應該要注意Show()和ShowDialog()的差異 04/29 00:38
Compile沒問題, 但我按下form2 的button時就有錯誤了 錯誤訊息是An unhandled exception of type 'System.NullReferenceException' occurred in ADW_Map.exe Additional information: Object reference not set to an instance of an object. ※ 編輯: chrishappy11 來自: 119.14.168.8 (04/29 08:03)
Ansaga:做一個Static物件專門存變數讓兩個form直接取如何 04/29 09:01
evirtues:你的f2.Show()寫在哪裡? 04/29 10:02
evirtues:你這樣的寫法 f2.Show()也只能在Form1的button1_Click內 04/29 10:07
gmoz:form2裡面宣告一個form1 再把from1丟進去不就好了 04/29 17:34
問題已解決...感謝 我自己key錯行...哈哈 ※ 編輯: chrishappy11 來自: 119.14.168.8 (04/29 19:55)