2010-08-11 47 views

回答

2

這是設計。你可以解決它通過使用,比如說,MouseMove事件:

private void Form1_MouseMove(object sender, MouseEventArgs e) 
{ 
    if (e.Button == MouseButtons.Left) 
    { 
     Point pt = TargetControl.PointToClient(Cursor.Position); 
     Rectangle rc = TargetControl.ClientRectangle; 
     if (rc.Contains(pt)) 
     { 
      // do what would be done on MouseEnter 
     } 
    } 
} 

這是不理想的,雖然 - 如果鼠標按鈕被按下當鼠標懸停在其他控制形式上,那麼它不」 t出現在按下按鈕的MouseMove事件中(如@Hans指出的,另一個控件'捕捉'MouseDown)。如果這是一個問題,那麼在MouseMove中結合命中測試,同時分別跟蹤表單上的MouseDown和MouseUp應該可以工作。

+0

也不會有任何MouseMove消息。 – 2010-08-11 12:58:58

+0

@Hans - 是的,我測試過它的工作.. – stuartd 2010-08-11 14:31:57

+0

點擊一個按鈕控件,按住鼠標按鈕,將其移到窗體上,看看我的意思。 – 2010-08-11 14:44:17

相關問題