[VB6 ] Form的切換

看板Visual_Basic作者 (開車/旅遊)時間13年前 (2012/09/06 22:39), 編輯推噓0(0013)
留言13則, 3人參與, 最新討論串1/4 (看更多)
目前設定formbase和formadd 現在想要當點選formbase上的新增按鈕後,出現formadd 之後把formbase隱藏(或避免佔記憶體直接釋放,之後再叫出來,但我不會^^") Private Sub Cmdnew_Click() '新增資料,叫出新增視窗 Formadd.Show Formbase.Visible = False Formadd.SetFocus End Sub Formadd.SetFocus的用意在於 當出現Formadd後,搶走focus,之後如果結束新增或不小心關掉視窗 再用LostFocus來叫回Formbase Private Sub Cmdnew_LostFocus() '叫回基本視窗' Formbase.Visible = True End Sub 但執行下去卻變成Formbase不會消失,而且還搶走Focus 不知道是哪裡邏輯有問題呢? 在這裡先感謝先進的幫忙 另外再請教一下,有辦法關掉右上的 X 嗎? 或者當按下右上的 X ,一樣會跳出msgbox"確定"的訊息? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.40.126.190 ※ 編輯: chrisjon 來自: 114.40.126.190 (09/06 22:41)

09/06 22:55, , 1F
為什麼按下去隱藏視窗,離開焦點又要把視窗顯示出來?
09/06 22:55, 1F

09/06 22:56, , 2F
視窗關閉有 QueryUnload 事件
09/06 22:56, 2F

09/06 22:57, , 3F
按下叉叉或系統功能表的關閉 UnloadMode會為0
09/06 22:57, 3F

09/06 22:58, , 4F
我的想法是,當setfocus後,base就losefocus
09/06 22:58, 4F

09/06 22:59, , 5F
之後有意或不小心關掉add視窗,就會lostfocus
09/06 22:59, 5F

09/06 22:59, , 6F
那時就會把base叫回來
09/06 22:59, 6F

09/06 23:01, , 7F
Cancel 設為非零值,可以取消關閉視窗
09/06 23:01, 7F

09/06 23:02, , 8F
問題你的程式碼不是隱藏了後馬上又顯示嗎...
09/06 23:02, 8F

09/06 23:14, , 9F
QueryUnload找到了,也可以使用
09/06 23:14, 9F

09/06 23:14, , 10F
我是想要formadd失焦(視窗不見)時叫回來用的
09/06 23:14, 10F

09/06 23:15, , 11F
避免不小心把所有的視窗都關掉,然後程式關不起來
09/06 23:15, 11F

09/07 01:32, , 12F
form失焦不只有視窗不見,還包括焦點跑到別的視窗的情況
09/07 01:32, 12F

09/07 10:19, , 13F
啊…我沒想到="=…謝謝!
09/07 10:19, 13F
文章代碼(AID): #1GIBMKGR (Visual_Basic)
文章代碼(AID): #1GIBMKGR (Visual_Basic)