[問題] 請問如何在不同form裡控制變數???

看板C_Sharp作者時間11年前 (2013/04/28 21:44), 編輯推噓4(409)
留言13則, 4人參與, 最新討論串1/1
抱歉 小弟弟算是程式新手 我寫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

04/28 23:02, , 1F
妳用 new 就是新的 instance 了 不是原本的 form1
04/28 23:02, 1F

04/28 23:02, , 2F
你要把整個 form 或是 boolean 傳過去
04/28 23:02, 2F

04/28 23:04, , 3F
啊 看錯 忽略第一個推文
04/28 23:04, 3F

04/28 23:05, , 4F
我都是把要改變的變數或是整個 form 傳給另一個 form
04/28 23:05, 4F

04/28 23:07, , 5F
你的 this.Owner 第一次看到 剛剛 google 了一下 好像
04/28 23:07, 5F

04/28 23:07, , 6F
可以耶 哈哈 不好意思
04/28 23:07, 6F

04/28 23:12, , 7F
嗯 這種方法真酷! 多謝 不過正解還請其他前輩解惑
04/28 23:12, 7F

04/29 00:34, , 8F
怎樣的錯誤? 這方法是對的,a的確會被改成true
04/29 00:34, 8F

04/29 00:38, , 9F
如果我猜的沒錯 你應該要注意Show()和ShowDialog()的差異
04/29 00:38, 9F
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)

04/29 09:01, , 10F
做一個Static物件專門存變數讓兩個form直接取如何
04/29 09:01, 10F

04/29 10:02, , 11F
你的f2.Show()寫在哪裡?
04/29 10:02, 11F

04/29 10:07, , 12F
你這樣的寫法 f2.Show()也只能在Form1的button1_Click內
04/29 10:07, 12F

04/29 17:34, , 13F
form2裡面宣告一個form1 再把from1丟進去不就好了
04/29 17:34, 13F
問題已解決...感謝 我自己key錯行...哈哈 ※ 編輯: chrishappy11 來自: 119.14.168.8 (04/29 19:55)
文章代碼(AID): #1HVIUm1c (C_Sharp)