防止WinForms MessageBox.Show模态弹出窗口
问题描述:
有没有办法拦截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模式弹出窗口。
有没有其他办法?
答
您可以使用Reflection
覆盖MessageBox.Show
方法。
退房这个职位为例:
如果你只是想摆脱的模式'MessageBox',你可以用自己的实现,并使用查找/替换以替换所有消息框。 –