2013-08-27 48 views
2

有人可以解釋這是如何工作的?使用按位邏輯來測試Control.MouseButtons

if ((Control.MouseButtons & MouseButtons.Left) != 0) 

MSDN只說Control.MouseButtons屬性獲取一個值,指示該鼠標按鈕處於按下狀態,但我不明白怎麼「&」的作品,它爲什麼應該比0不同。

回答

2

MouseButtons屬性是一個標誌比正常的枚舉。這意味着它可以同時保存如MouseButtons.LeftMouseButtons.Right的值。它通過使用值中的特定位的1/0狀態來表示狀態。 MouseButtons.LeftMouseButtons.Right表示這樣的狀態。

該操作被稱爲。它將返回一個值爲1的值,左邊和右邊的值都是。因此,當MouseButtons.Left位設置爲MouseButtons時,該特定表達式將僅爲非零,這意味着左按鈕確實被按下了。

+0

ECXELLENT!先生,謝謝你 –

1

Control.MouseButtons是按位組合。

表達:如果位MouseButtons.Left設置

if ((Control.MouseButtons & MouseButtons.Left) != 0) 

被檢查(具有值1)。