2012-04-16 55 views
1

我遇到了釋放捕獲的鼠標的問題。我的應用程序要求我做出一系列動作(意味着它們會一個接一個地自動運行)。序列如下: _選擇一個對象 _根據輸入的值在對象旋轉的消息框中輸入一個值。消息框阻止mouseLeftButtonUp事件

運行時:我點擊該對象,它激活所選對象的MouseLeftButtonDown事件。然後出現消息框。該消息框阻止我的鼠標激活該對象的MouseLeftButtonUp事件。所以我必須再次單擊對象才能激活MouseLeftButtonUp事件,否則我的應用程序無法繼續運行。

任何人都可以幫助我嗎?

+0

請顯示一些代碼。 – Likurg 2012-04-16 06:56:44

回答

2

這就是爲什麼很多控件只對MouseUp事件採取行動的原因。他們使用MouseDown事件來做類似於指示狀態或選擇的事情。並且使用鼠標捕獲(Winforms中的Capture屬性)來確保即使鼠標移動到窗口之外,它們也會得到MouseUp事件。立即在瀏覽器中嘗試,按住鼠標右鍵,沒有任何反應,放開它。當您左鍵單擊鏈接或按鈕時,具有完全相同的行爲。

聽起來像這就是你想要做的。

+0

感謝Hans Passant,但該應用程序還允許拖放對象。這就是爲什麼我使用所有鼠標,鼠標移動和鼠標拖動功能。在我的情況下,序列意味着讓我選擇一個點,然後在框中輸入一個值。選擇不激活鼠標事件,但它將鼠標放在拖放功能上。所以當這個框出現時,它會阻止鼠標向上的事件。所以對象處於移動狀態,直到我再次點擊釋放鼠標。 – user1331344 2012-04-16 11:35:34

+0

那麼,那當然不行。你需要做的是延遲D + D,直到你看到鼠標左鍵移動。示例代碼在這裏:http://stackoverflow.com/a/3124382/17034 – 2012-04-16 11:43:41

+0

好的,這是非常有用的,非常感謝你!我將根據示例修改我的代碼:D – user1331344 2012-04-16 11:58:03