我嘗試從事件發送窗口的Open事件ItemChanged一個數據窗口使用:SUPER :: EVENT OPEN()
除了打開事件包含「腳本祖先」我也需要跑;本身需要從DataWindow的事件ItemChanged重新啓動窗口。發送從數據窗口事件ItemChanged的呼叫打開事件
我希望你的幫助。
在此先感謝。
Regards,
我嘗試從事件發送窗口的Open事件ItemChanged一個數據窗口使用:SUPER :: EVENT OPEN()
除了打開事件包含「腳本祖先」我也需要跑;本身需要從DataWindow的事件ItemChanged重新啓動窗口。發送從數據窗口事件ItemChanged的呼叫打開事件
我希望你的幫助。
在此先感謝。
Regards,
有幾件事情從你的問題中跳出來。
SUPER::EVENT OPEN()
會嘗試調用數據窗口的Open事件如果從ItemChanged調用,而不是窗口。
我不知道這個100%,但我敢肯定,我碰到試圖從一個完全不同的腳本中調用一個腳本的祖先問題。我不能指出文件;我不得不把它記錄下來,直到有經驗的懷疑。如果你想打開窗口(我會在下面另行說明),並且如果窗口的Open腳本要麼擴展了祖先腳本,要麼顯式調用祖先腳本(如上所述),明確地調用祖先腳本是不必要的,並且使我感到不可取。只需調用您正在編寫的窗口的Open腳本即可。
這將完全取決於您的代碼,但我必須維護的幾十個系統,我會從來沒有假設運行窗口的Open事件將「重新啓動」窗口。我工作的大多數系統都會創建一個意想不到的新舊狀態組合。此外,即使我這個編碼從頭開始以這種方式很好地工作,我認爲這走過來保持我的代碼(後我贏了彩票和退休的一個小南太平洋島國)的下一個男人會在代碼基於他所從事的其他系統,這對他來說是完全有意義的,但會導致我的假設失效。如果我需要「重啓」的窗口,我要麼:
(這兩個,後者將是更好的用戶經驗和編碼,恕我直言。)
祝你好運,
特里。
通常從代碼中調用內置事件是一個糟糕的主意,除了使用SUPER ::關鍵字來調用祖先腳本之外。即使這是可疑的,因爲它可能會繞過框架代碼。我標記每個事件腳本,我發現它覆蓋了頂層的'// OVERRIDES ANCESTOR'的祖先。代碼調用例如'cb_1.clicked'這裏沒有通過同行評議。 –
休使得一個好點,這通常是我的愛好,一匹馬,但我忽略了這一次。今天,您可能會認爲您需要調用Open事件中的所有邏輯,但下個月,其他人將需要在一種情況下或另一種情況下專門調用某些東西,工作人員會跳過箍環(例如設置標誌)以將代碼保留在那裏。現在把它分開,從兩個地方給它打電話,長期保存自己。 – Terry