[問題] showdialog和visible的問題
因為想在子表單和父表單之間傳值
第一時間用的是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)