MDI框架下 a視窗為main! b視窗為child!型別, c視窗為main!
通過MDI選單打開a視窗和c視窗
1.從a視窗中打開b視窗,然后在b視窗中輸入資料后隱藏b視窗,不是關閉b視窗
2.a視窗呼叫b視窗的代碼為 openwithparm(b,'',parent)
3.這時關閉a視窗
4.在c視窗檢查isvalid(b),居然b視窗是打開的,也就是說b視窗并沒有隨著a視窗的關閉而關閉,
5.請問這種模式下怎樣才能在a視窗關閉時同時關閉b視窗,我b視窗不能用response視窗這些型別
還有就是在mdi框架下,隱藏子視窗后,如何讓父視窗得到焦點(在b視窗呼叫代碼得到的父視窗是mdi框架視窗,而不是a視窗)
同理,如果不是mdi框架,隱藏子視窗后,如何讓父視窗得到焦點
寫得有點多,有點繞,還請仔細看一下,謝謝!
uj5u.com熱心網友回復:
2.a視窗呼叫b視窗的代碼為 openwithparm(b,'',parent)
這個代碼寫在哪兒的?
uj5u.com熱心網友回復:
a視窗的按鈕的clicked下uj5u.com熱心網友回復:
可以用setparent的api試一試。是在不行可以在關閉a視窗的時候去主動關閉b視窗。只要能實作功能不就行了。
uj5u.com熱心網友回復:
建議將A與B整合到同一視窗,但是開啟不同的DW control,
點A時,將B隱藏起來,
開啟B時,將A隱藏起來,
這樣方便調用資料,
而且關閉時就能一起關閉,
不會有這個困擾,
存個人建議.............
uj5u.com熱心網友回復:
如果你不想用response視窗型別,你可以把b視窗設定為popup型別,同樣也可以實作關閉a視窗的同時關閉b視窗。
你可以在隱藏子視窗代碼后面指定設定父視窗焦點,并置頂就可以了
uj5u.com熱心網友回復:
在a視窗的close事件中寫If Isvalid(b) Then Close(b)
隱藏子視窗后,如何讓父視窗得到焦點
ParentWindow()//獲得父視窗。
Choose caseParentWindow().windowtype
case mdi!,mdihelp!
...
case main!
...
End choose
uj5u.com熱心網友回復:
估計你的 a 視窗是以 opensheet() 方式打開,而表單視窗不能成為其它任何視窗的父視窗;所以你雖然打開了一個 child 型別的視窗并設 a 為其父視窗,但實際上 a 無法成為其父視窗,所以只能是以 a 的父視窗 mdi 做為 b 的父視窗。如果 a 一定要是表單視窗的話:
問題 1. a 視窗關閉時主動關閉 b 視窗
問題 2. a 視窗打開 b 時把某個控制元件作為引數傳遞給 b,當 b 視窗隱藏時主動置該控制元件獲得焦點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/81579.html
標籤:控件與界面
