2016-11-11 114 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',你可以用自己的实现,并使用查找/替换以替换所有消息框。 –

回答