用一個頂層表單調用另一個模式表單,並關閉頂層表單


用一個頂層表單調用另一個表單,並關閉頂層表單:
thisform.release
在頂層表單的destroy事件中寫入:
do form 另一個表單.scx

出現以下問題:
如果這個另一個表單是模式表單,那么調用表單就不會被釋放,而要等到這個另一個表單(模式表單)關閉后才能被釋放,我想要這個表單是模式表單,而且當它運行時頂層調用表單就會被關閉應該怎么辦?

還有,在這個模式表單上放置grid表格控件,表格數據中有備注型數據,表單運行后,雙擊該字段相應數據彈出的備注字段編輯窗口被隱藏或遮擋,如果不是模式表單就能看到該彈出窗口,請問在不改變表單運行模式情況下,如何才能讓編輯窗口可見?

6 个解决方案

#1


問題1:應該是你的 另一個表單 的屬性ShowWindow=1(在頂層表單中),因為你的 另一個表單 要存在於 頂層表單中。所以要把你的 另一個表單 的屬性ShowWindow 改為 2。

問題2:與問題1有關,
當表單屬性ShowWindow 不是1時,不存在問題2。
當表單屬性ShowWindow=1,WindowType=1時,要這樣:
在表格的memo字段列的text1的dblclick 事件寫如下代碼,就可以實現了: 
MODIFY MEMORY (this.Parent.ControlSource) 
但要注意:當表單屬性Desktop=.T.時,編輯框將被表單遮住,反之不被遮住。

#2


謝謝十豆三老師,是ShowWindow的問題。我問題在修改了ShowWindow屬性后解決了。我用模式表單的目的是當這個模式表單運行時,除這個表單界面的東西外其他的都不能用。可以防止表單被反復運行,也可以防止數據表使用的沖突。
我的程序是用菜單作為程序窗口的,不知是頂層表單又是模式表單的表單運行后,菜單還可不可用(我不想讓菜單可用)?我的程序還沒連編。

#3


如果是:VFP8.0 或 VFP9.0
1、菜單所在表單:頂層表單(表單的ShowWindow為2)
2、其他子表單:ShowWindow為1 (即“在頂層表單中”),並且WindowsType的值為1(即模式表單)。
這樣當執行程序時,菜單和主表單為活動的,當執行一個子表單時,菜單為不活動,子表單退出后,主表單及菜單變為活動。

如果是:VFP6.0
可以設置菜單中“跳過(Skip For)”再結合變量即可實現菜單的可用或不可用。
跳過設置方法:在菜單設計窗口,點擊最后面選項下的小按鈕,彈出選項對話框,其中有一項“跳過(Skip For)”的選項,如果“跳過(Skip For)”表達式的值是.T.,則菜單不可用。這個表達式可以是個全局變量或全局數組。)

#4


該回復於2012-06-18 09:28:07被版主刪除

#5


十豆三老師,我的程序是,頂層表單下的所有子表單都設成了“模式表單‘,但運行其一任何一個表單時,菜單都還處於活動狀態,出現互斥現象,不知怎么才能讓菜單處於灰色狀態(當某個子表單處於活動狀態時)?謝您了!

#6


在編譯之前,可達到菜單變灰的效果。但編譯成可執行文件后,就不行了。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com