[問題] showdialog和visible的問題

看板C_Sharp作者 (張郎)時間12年前 (2012/04/09 21:20), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
因為想在子表單和父表單之間傳值 第一時間用的是visible=true和false控制 但會變成父表單呼叫時直接執行到下面的事情(在某個地方顯示回傳值之類的) (因為沒有強制等子表單回應後再繼續下去) 有人建議我用showdialog() 雖然可以強制將子表單疊到最上層 等收到回應後父表單才能繼續 但因為在子表單裡面會建立陣列和圖(picturebox) 如果單單只有執行一次子表單還好 如果多跑幾次showdialog()呼叫子表單 因為會重新執行form_load的動作 導致功虧一簣 兩者之間優缺點剛好互補 簡單整理就是: 用visible控制時,不會再重頭從form_load事件開始執行 等於子表單是處於standby狀態,東西都建立好了,就等處發事件 但呼叫子表單後的瞬間,父表單之後的事情卻會搶在子表單前面做... showdialog()可以強制等值回來才繼續執行父表單後面的動作 但每次呼叫子表單卻會從頭執行form_load的事件,導致重新建立陣列和圖(picurebox) 多次呼叫就會崩潰 而且至少會用到子表單六次 所以問題還不小 請問各位大大有什麼折衷的方法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.54.109 ※ 編輯: chjimmy 來自: 61.231.54.109 (04/09 21:24) ※ 編輯: chjimmy 來自: 61.231.54.109 (04/09 21:26) ※ 編輯: chjimmy 來自: 61.231.54.109 (04/09 21:32)

04/09 21:33, , 1F
把陣列跟圖建立在父表單 子表單只要負責讀取然後顯示如何?
04/09 21:33, 1F
自己回自己的文... 只要把只要執行一次的放在Form裡就好 不要放在Form_load事件中 就只會執行一次 (裡面有InitializeComponent();的那個) 這樣看來 問題似乎已經解決了 ※ 編輯: chjimmy 來自: 61.231.54.109 (04/09 22:34)
文章代碼(AID): #1FWk856k (C_Sharp)