我一直在尋找傾聽,當用戶單擊應用程序窗口右上角的Windows 7或Windows 10最大化按鈕來最大化E4 RCP應用程序時。最終,我想在調整TreeViewer佈局的大小時調整TreeColumns的大小。我在TreeViewer中的Tree上有一個偵聽器,它偵聽Tree大小的變化 - 它使用ControlResiste(ControlEvent e)方法使用ControlListener。如果點擊並拖動調整應用程序窗口的大小,這很好。但是當我點擊最大化按鈕時,佈局會改變大小,列不會。我懷疑聽衆爲時已晚,並且在最大化/取消最大化之前進行重繪之前,沒有檢測到調整大小。E4 RCP應用程序監聽最大化或最小化
也嘗試使用Iconify和deIconify方法使用Listener,它們在這裏不起作用,因爲它們處理Minimize和un-Minimize。
還嘗試使用IPartListener進行活動,可見等....這也發生在調整大小的位置,但不在正確的時間觸發正確重繪,就像同樣的問題。
我真正想要的是一個解決方案,最大化屏幕,檢查佈局的大小(這是我以爲我在做什麼),然後相應地計算列大小。但是,這不會通過單擊最大化或取消最大化來觸發,只有通過拖動和調整大小才能成功。也許這只是我在這裏想念的東西。預先感謝您的建議。
- 馬福
你可以隨時調用'Control.redraw()'如果你認爲一個重繪是必需的。 –
如果通過'ColumnWeightData'使用'TreeColumnLayout',佈局應該自動處理所有的大小調整。 –