2016-11-11 111 views
1

有沒有辦法攔截MessageBox.Show(...)調用,而是返回結果?防止WinForms MessageBox.Show模態彈出窗口

一種解決方案是一種實現定義的抽象像

interface IShowMessage { 
    MessageBoxResult Show(...); 
} 

class DoShowMessage : IShowMessage { 
    MessageBoxResult Show(...) { return MessageBox.Show(...); } 
} 

class NeverShowMessage : IShowMessage { 
    MessageBoxResult Show(...) { return MessageBoxResult.OK; } 
} 

和需要時使用的任何一種實現。但是,在當前的代碼庫中,由於調用數量龐大,因此這是不可行的。不過,我需要擺脫MessageBox模式彈出窗口。

有沒有其他辦法?

+0

如果你只是想擺脫的模式'MessageBox',你可以用自己的實現,並使用查找/替換以替換所有消息框。 –

回答