我有一個自定義UserControl。我想在幾個不同的產品中使用它,所以我想要一些可以在UserControl本身內部實現的東西。我想知道用戶何時在UserControl的邊界之外單擊,以便可以隱藏它,類似於ComboBox。我怎樣才能做到這一點?如何判斷用戶何時點擊了您的控件的界限?
我試着處理click事件,但它似乎只在點擊發生在控件的邊界內時纔會觸發。
我有一個自定義UserControl。我想在幾個不同的產品中使用它,所以我想要一些可以在UserControl本身內部實現的東西。我想知道用戶何時在UserControl的邊界之外單擊,以便可以隱藏它,類似於ComboBox。我怎樣才能做到這一點?如何判斷用戶何時點擊了您的控件的界限?
我試着處理click事件,但它似乎只在點擊發生在控件的邊界內時纔會觸發。
這就是Capture屬性設計的目的。將其設置爲true,並且所有鼠標消息都會路由到您的控件,即使它移出窗口邊界。檢查MouseDown事件中的e.Location屬性。
嗯,您可以通過聽GotFocus/LostFocus事件來完成您想要的任務。 ComboBoxes在失去焦點時打開並關閉它們,從而爲它們提供下拉焦點。
做到這一點
代碼:
if (!sender.Equals(yourControl))
{
yourControl.Visible=false;
}
該問題明確要求「可以在UserControl本身內部實現的內容」。只有在包含UserControl的表單上實現時,您的建議纔會有效。 – 2010-11-13 08:51:20