如果對話方塊打開,為什麼 Microsoft Word 無法關閉?

如果對話方塊打開,為什麼 Microsoft Word 無法關閉?

當嘗試關閉另一個對話方塊開啟的文件時,我偶爾會收到 Word 給出的錯誤,但我一直無法弄清楚為什麼它發生了。

答案1

因為大多數對話框都被認為是“莫代爾「這意味著在對話方塊本身關閉之前,控制不會傳遞回主程式或呼叫容器。這是設計使然,程式設計師可以選擇使視窗成為模態或非模態。通常,視窗是如果主程式不能或不應該繼續,直到透過選擇(確定)或中止(取消)處理開啟的對話框,則定義為模態。

答案2

該對話框可能會顯示如下內容:

您已對文件進行了更改,是否要儲存它們? (是)(否)

這裡沒有明顯的正確答案。您可能不小心損壞了您的文件(例如,貓走過鍵盤),在這種情況下答案為“否”,或者您可能花了幾個小時輸入更改,在這種情況下答案為“是” 。

對於 Word 來說,最安全的做法是在您回答問題之前拒絕關閉。

答案3

因為程式是這樣設計的,以避免採取使用者可能不想要的操作。

通常,當程式需要使用者指導某些操作時,會顯示對話方塊。關閉未儲存的文件就是一個很好的例子:一個對話方塊提供儲存變更、放棄變更或中止關閉並傳回編輯的功能。該程序故意拒絕在不回答此問題的情況下關閉,因為關閉將迫使採取一些行動。該程序無法自行決定,例如。放棄最近的編輯,或者相反,用鍵盤上的貓打字覆蓋正確的版本。

即使我們考慮一個與關閉無關的對話框,它通常也意味著某些進程正在進行中,但尚未完成,用戶必須決定走哪條路。它不能“簡單地中止”,因為中止也是用戶可能無意的操作。

它還簡化了程式的設計,因為它的創建者不必為每個功能創建「安全的出路」。

如今,大多數對話框在技術意義上都不是模態的(程式仍然負責),但在更廣泛的程式邏輯流意義上使它們成為模態仍然更容易。

答案4

在幕後,程式(在我們的例子中是 MS Word)在建立視窗時創建了一個「X 按鈕點擊事件處理程序」。當出現對話方塊視窗時,Word 會記錄該對話方塊。然後,在 X 按鈕處理程序中,當單擊 X 按鈕時,它會檢查記錄的開啟的對話方塊視窗。如果有,處理程序將中止關閉操作。如果沒有,它會終止程序,作業系統會清理程式佔用的記憶體。這就是它的工作原理。

相關內容