利用 Deactivate 事件關閉表單視窗。


在 多 表 單 的 程 式 中 , 有 兩 種 顯 示 表 單 的 方 式 :

FormX.Show vbModal ' 強 制 回 應 式
FormX.Show vbModeless ' 非 強 制 回 應 式

假 設 執 行 以 上 敘 述 的 表 單 為 Form1, 則 「 強 制 回 應 式 」 必 須 等 到 FormX 被 關 閉 (或 隱 藏 ), Form1 才 可 以 再 度 被 操 作 , 「 非 強 制 回 應 式 」 則 允 許 使 用 者 同 時 操 作 FormX 及 Form1。

一 般 來 說 , 若 不 想 讓 使 用 者 同 時 操 作 多 個 表 單 , 通 常 會 採 用「強 制 回 應 式」來 顯 示 另 一 個 表 單 , 但 它 的 缺 點 是 使 用 者 必 須 先 關 閉 後 來 顯 示 的 表 單 , 原 表 單 才 可 以 再 操 作 , 有 些 不 熟 悉 Windows 操 作 的 使 用 者 可 能 不 知 道 此 一 操 作 方 式 , 而 以 滑 鼠 點 按 原 表 單 , 結 果 會 得 到 「 嗶 」 一 聲 的 回 應 , 當 然 , 您 可 以 罵 這 種 使 用 者 是 呆 瓜 , 但 更 具 親 和 力 的 操 作 方 式 則 是 在 使 用 者 以 滑 鼠 點 按 原 表 單 時 , 自 動 關 閉 後 來 顯 示 的 表 單 。 要 達 到 以 上 目 的 , Show 方 法 的 呼 叫 還 是 要 採 用「非 強 制 回 應 式」 , 而 被 顯 示 的 表 單 則 應 該 在 Deactivate 事 件 程 序 自 我 關 閉 , 如 下 :

Private Sub Form_Deactivate() ' 當表單變成「非使用中」,發生此一事件
        Unload Me
End Sub