防止WinForms MessageBox.Show模式弹出窗口

时间:2016-11-11 18:41:21

标签: c# winforms messagebox

有没有办法拦截MessageBox.Show(...)来电,而是返回结果?

解决方案是定义类似

的抽象
interface IShowMessage {
    MessageBoxResult Show(...);
}

使用类似

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

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

并在需要时使用任一实现。但是,在当前的代码库中,由于MessageBox.Show(...)次呼叫量很大,这是不可行的。不过,我需要摆脱MessageBox模式弹出窗口。

还有其他办法吗?

1 个答案:

答案 0 :(得分:-1)

您可以使用Reflection覆盖MessageBox.Show方法。

查看此帖子的示例:

Is there a way to "override" a method with reflection?