【发布时间】:2016-11-11 18:41:21
【问题描述】:
有没有办法拦截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 模式弹出窗口。
还有其他方法吗?
【问题讨论】:
-
如果你只是想摆脱模态
MessageBox,你可以使用你自己的实现并使用查找/替换来替换所有的消息框。
标签: c# winforms messagebox