我正在尝试编写一个自定义对话框。一切都很好,但我不希望我的对话框可以用 Show() 事件调用。无论如何要阻止这个?
问问题
37 次
1 回答
3
如果您的类继承自Form
它是不可能的。 Show
不是虚拟的,所以你不能覆盖它。您应该隐藏它,并让它抛出异常或ShowDialog
在内部调用(无法将其作为一个选项完全删除),但是任何只将变量键入为的调用者Form
仍然可以调用Show
,绕过您的实现。
您唯一可用的选项是您的类不继承自Form
. 您需要将类型设计为使用组合而不是继承。在您的类型定义中拥有一个Form
属性,并对其进行操作、向其添加控件等,就像您通常可以操作类型本身一样。
您需要为要在外部公开的任何功能显式创建成员,将适当的调用重定向到封装的表单(对于方法,例如ShowDialog
)。
于 2013-09-10T19:44:00.200 回答