2009-12-04 34 views
0

我正在開發一個WinForm 的Windows Mobile 5.0或以上.NET Framework精簡版2.0 SP2C#.NET Compact Framework的:控制在控制onmousedown事件問題

我有兩個自定義控件(從Control繼承的兩個類)。如果我點擊control1的特定位置,它將顯示control2(control2是control1的控件)。換句話說,control2是一個彈出菜單,它顯示在control1上。

Control2有兩個linklabel。如果用戶點擊其中的一個,control2會拋出一個事件來通知control1有關用戶的選擇。

在control1上,我重寫了OnMouseDown,OnMouseUP和OnMouseMove。

好的。我在用戶點擊control2上的linklabel的情況下調試了代碼。該事件經過:

  • 在control2上,使用linklabel_click方法。
  • On control1,control2_customEvent method。
  • 而且,這裏是我的問題,關於control1, 的OnMouseMove方法和OnMouseUp。

如果我點擊control2而不點擊鏈接標籤,它也會拋出control1.OnMouseMove和control1.OnMouseUp。

更新:

爲什麼射擊的OnMouseMove和OnMouseUp上控制1如果我點擊了控制2

謝謝!

+0

由於您點擊了鼠標,它正在點擊OnMouseDown。那真的是你要問的嗎? – 2009-12-04 16:42:16

+0

不,我想問,爲什麼在Control1上點擊OnMouse事件,如果我點擊Control2? – VansFannel 2009-12-04 16:57:16

回答

1

這是正確的。鼠標向下控制2.控制2消失,因此相應的MouseUp在現在可見的控件(Control1)上被調用。

爲了避免這種情況,兩者都要解決:MouseUp或MouseDown不是這兩者的組合。

+0

I_不理解你。我需要在Control1上定義的MouseUp和MouseDown。 – VansFannel 2009-12-04 17:06:24

+0

當你點擊一個鏈接,然後你得到一個鼠標,然後一個鼠標。 問題是,鼠標停止發生在控件2上(點擊鏈接)。控制2然後消失,雙手控制回到控制1.然後發生鼠標向上事件。現在,這一切都通過控制數字1來實現。避免這種情況的方法是使所有「操作/提交」事件在鼠標移動或鼠標移動時發生。我喜歡自己動手。嘗試重新編寫鏈接以代替使用MouseUp。您可能必須編寫自己的鏈接控件才能執行此操作,因此請先使用按鈕並處理MouseUP(不要單擊)。 – Quibblesome 2009-12-04 17:55:13

+0

好吧,我已經完成了,它的工作原理!謝謝。 – VansFannel 2009-12-05 05:50:31