阻止显示表单的事件;

本文关键字:事件 表单 显示 | 更新日期: 2023-09-27 18:30:47

我正在尝试编写一个自定义对话框。一切都很好,但我不希望我的对话框可以使用 Show() 事件调用。无论如何要阻止这个?

阻止显示表单的事件;

如果你的类继承自Form则不可能。 Show不是虚拟的,因此您无法覆盖它。 您应该隐藏它,并让它在内部抛出异常或调用ShowDialog(无法将其作为一个选项完全删除),但是任何仅将变量键入为Form的调用者仍然可以调用Show,绕过您的实现。

您唯一可用的选项是您的类不继承自Form 。 您需要将类型设计为使用组合而不是继承。 在类型定义中有一个 Form 属性,并像通常操作类型本身一样操作它、向其添加控件等。

您需要为要在外部公开的任何功能显式创建成员,将适当的调用重定向到封装的表单(对于 ShowDialog 等方法)。