2010-11-13 33 views
3

我有一個自定義UserControl。我想在幾個不同的產品中使用它,所以我想要一些可以在UserControl本身內部實現的東西。我想知道用戶何時在UserControl的邊界之外單擊,以便可以隱藏它,類似於ComboBox。我怎樣才能做到這一點?如何判斷用戶何時點擊了您的控件的界限?

我試着處理click事件,但它似乎只在點擊發生在控件的邊界內時纔會觸發。

回答

3

這就是Capture屬性設計的目的。將其設置爲true,並且所有鼠標消息都會路由到您的控件,即使它移出窗口邊界。檢查MouseDown事件中的e.Location屬性。

1

嗯,您可以通過聽GotFocus/LostFocus事件來完成您想要的任務。 ComboBoxes在失去焦點時打開並關閉它們,從而爲它們提供下拉焦點。

-1

做到這一點

  • 選擇您的形式,包括形式
  • 在屬性窗口上的所有控件選擇鼠標點擊事件
  • 現在Common_MouseClick
  • 下面的代碼輸入

代碼:

if (!sender.Equals(yourControl)) 
    { 
     yourControl.Visible=false; 
    } 
+1

該問題明確要求「可以在UserControl本身內部實現的內容」。只有在包含UserControl的表單上實現時,您的建議纔會有效。 – 2010-11-13 08:51:20

相關問題