我想寫一個自定義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