我正在編寫一個從UserControl派生的自定義控件。在這裏有一些我想阻止訪問的控件(一些文本框,組合框)。只有當用戶點擊「編輯」按鈕時,纔可以進行交互。用另一個控件隱藏UserControl中的子控件
我讀了約KeyPreview但它只適用於窗體。我發現將所有事件重定向到一個常見的處理程序,以檢查編輯模式是否啓用了太多麻煩。
是否有任何方法可以將另一個透明控件放在其他控件上(Z順序),這將攔截所有鼠標和按鍵事件,但正常呈現控件?或者也許有不同的解決方案?
編輯: 我想在覆蓋其他控件的控件上接收鼠標事件。我需要這些用於拖放和移動自定義控件。
通常我會在用戶控件中使用一個FormView,當用戶點擊編輯時,它將模式從'ReadOnly'改變爲'Edit'。所有其他方法比這更麻煩。 – 2011-12-21 12:34:33
@TimSchmelter:這將與winforms一起工作嗎? – XORcist 2011-12-21 12:42:39
執行此操作的正常方法是將控件放入「Panel」中 - 設置panel.Enabled = false將禁用用戶與控件的交互。控件將顯示爲灰色,這不是您所要求的,但可能是大多數用戶期望的。 – Justin 2011-12-21 12:43:39