我想写一个自定义dialog.Everything是好的,但我不希望我的Dialog可调用Show()event.Anyway来阻止此?阻止显示表单事件;
回答
如果你的班级继承Form
这是不可能的。 Show
不是虚拟的,所以你不能覆盖它。你应该把它遮蔽下来,让它在内部抛出异常或者拨打ShowDialog
(没有办法将它作为一个选项完全移除),但是任何只是将变量键入为Form
的调用者仍然可以调用Show
,绕过你的实现。
唯一可用的选择是你的班级不能从Form
继承。你需要设计你的类型来使用组合而不是继承。在你的类型定义中有一个Form
属性,并操作它,向它添加控件等等,正如你通常可以操作类型本身一样。
您需要显式创建成员,以便在外部公开任何功能,将相应调用重定向到封装表单(对于诸如ShowDialog
的方法)。
现在明白了。好的答案btw +1 –
那么show show叫什么时候调用ShowDialog? –
@TCBurakAvcı如果'Show'是虚拟*,你可以这样做*。但事实并非如此,所以你不能。正如我在答案中所说的那样,你可以将它蒙上阴影,但这并不可靠。它可以解决。 – Servy
- 1. 什么阻止get-member显示事件?
- 2. Javascript onchange事件阻止HTML表单中的onsubmit事件?
- 3. jQuery:单击时,阻止mouseenter事件
- 4. CSS3阻止AJAX单击事件
- 5. 某些表单事件(加载,显示)停止工作
- 6. 阻止Delphi COM组件显示MessageBox()
- 7. 如何阻止window.status显示?
- 8. 显示阻止消息框
- 9. 如何阻止ModalPopupExtender显示?
- 10. 如何阻止显示P:
- 11. 阻止表单提交并显示错误消息
- 12. 如何在显示第二个表单时阻止UI锁定?
- 13. OnLongClickListener阻止OnItemClickListener事件
- 14. 阻止父事件jquery
- 15. SKaction阻止touchesBegan事件
- 16. PreviewMouseLeftButtonDown阻止SelectionChanged事件
- 17. 阻止并等待事件
- 18. 阻止拖后事件
- 19. 定时器,阻止事件
- 20. NSColorPanel阻止鼠标事件
- 21. 如何阻止.remove()事件
- 22. event.preventDefault()不会阻止表单提交jQuery Mobile .live()事件
- 23. 如何阻止干扰表单域的keydown事件?
- 24. 表单显示前的事件?
- 25. 表示js阻止GET /favicon.ico
- 26. VB.net阻止显示工具提示
- 27. 阻止表单缓存
- 28. 阻止指令和表单
- 29. Bootstrap阻止提交表单
- 30. Javascript阻止表单提交
显示你的工作.. –
我打算阻止Show(),只允许使用ShowDialog()作为特定的表单。 –
你有什么理由禁止它?如果有人想模仿地展示这些表格,会导致什么样的问题? – Servy