我正在創建一系列Excel 2007無模式用戶表單,我希望按照需要顯示和隱藏。我試圖理解的問題是如何使用VBA以編程方式更改它們的z順序。有沒有人有任何建議,或者你可以指點我的解決方案?Excel 2007:Modelsss UserForm Z-Order
謝謝 -
我正在創建一系列Excel 2007無模式用戶表單,我希望按照需要顯示和隱藏。我試圖理解的問題是如何使用VBA以編程方式更改它們的z順序。有沒有人有任何建議,或者你可以指點我的解決方案?Excel 2007:Modelsss UserForm Z-Order
謝謝 -
了大量的研究後,我最終清盤使用Windows API來管理VBA用戶窗體的Z順序。具體而言,SetWindowPos API函數使用其hWndInsertAfter參數處理窗口Z順序。我從來沒有發現任何本地VBA方法或屬性可以設置用戶形式的Z順序(但我可能錯過了一些東西)。
我一直在尋找相同類型的方法。當我在下面的堆棧溢出頁面(http://stackoverflow.com/questions/20352422/issue-in-order-controls-in-excel-userform)中找到信息時,我很有希望,但這似乎不起作用。 – Fractal
就像更新一樣。上面的堆棧溢出頁面的解決方案確實爲我工作。但是,出於某種原因,如果我使用'With'/'End With',我只能使用它。我不能只說txtBx.ZOrder msoSendToBack。至少我不知道如何在不使用'With'格式的情況下使其工作。 – Fractal
@分形,如果我沒有記錯,我的解決方案只適用於窗體,而不是窗體上的單獨控件。我似乎回想起這種情況,因爲SetWindowPos API函數只處理窗口,並不適用於單個控件。對於改變各個表單控件的Z順序的問題,我的解決方法是爲每個表單創建多個版本並根據需要調用窗體窗口。 –
這可能對您有所幫助:http://www.ozgrid.com/forum/showthread.php?t=92064 – Ralph
感謝拉爾夫的迴應。該文章是關於改變位於用戶窗體上的控件的z順序。我需要操作用戶自己的z順序,而不是他們的控件。 –
我的表單也是無模式的 – Fractal