現在どのマウスボタンが押されているかという状態は、Control.MouseButtonsプロパティで取得できます。
次の例では現在どのマウスボタンが押されているか調べ、その結果を出力しています。
'Imports System.Windows.Forms '現在どのマウスボタンが押されているか調べる If (Control.MouseButtons And MouseButtons.Left) = MouseButtons.Left Then Console.WriteLine("マウスの左ボタンが押されています。") End If If (Control.MouseButtons And MouseButtons.Right) = MouseButtons.Right Then Console.WriteLine("マウスの右ボタンが押されています。") End If If (Control.MouseButtons And MouseButtons.Middle) = MouseButtons.Middle Then Console.WriteLine("マウスの中央ボタンが押されています。") End If '5つのボタンが付いたマウスMicrosoft IntelliMouse Explorerでの 'XBUTTON1とXBUTTON2を調べる 'Windows2000以降のみ If (Control.MouseButtons And MouseButtons.XButton1) = MouseButtons.XButton1 Then Console.WriteLine("マウスのXBUTTON1が押されています。") End If If (Control.MouseButtons And MouseButtons.XButton2) = MouseButtons.XButton2 Then Console.WriteLine("マウスのXBUTTON2が押されています。") End If
//using System.Windows.Forms; //現在どのマウスボタンが押されているか調べる if ((Control.MouseButtons & MouseButtons.Left) == MouseButtons.Left) { Console.WriteLine("マウスの左ボタンが押されています。"); } if ((Control.MouseButtons & MouseButtons.Right) == MouseButtons.Right) { Console.WriteLine("マウスの右ボタンが押されています。"); } if ((Control.MouseButtons & MouseButtons.Middle) == MouseButtons.Middle) { Console.WriteLine("マウスの中央ボタンが押されています。"); } //5つのボタンが付いたマウスMicrosoft IntelliMouse Explorerでの //XBUTTON1とXBUTTON2を調べる //Windows2000以降のみ if ((Control.MouseButtons & MouseButtons.XButton1) == MouseButtons.XButton1) { Console.WriteLine("マウスのXBUTTON1が押されています。"); } if ((Control.MouseButtons & MouseButtons.XButton2) == MouseButtons.XButton2) { Console.WriteLine("マウスのXBUTTON2が押されています。"); }
上記のコードでは、例えばマウスの左ボタンが押されているかを「(Control.MouseButtons & MouseButtons.Left) == MouseButtons.Left」(VB.NETでは、「Control.MouseButtons And MouseButtons.Left) = MouseButtons.Left」)がTrueになるかで調べています。この部分を「Control.MouseButtons == MouseButtons.Left」(VB.NETでは、「Control.MouseButtons = MouseButtons.Left」)にしてしまうと、マウスの左ボタンと別のボタンが同時に押されている場合、Falseになってしまいます。マウスの左ボタンが単独で押されている場合のみTrueになります。
これは、Control.MouseButtonsプロパティの値が、MouseButtons列挙値のビットごとの組み合わせになるためです。つまり、例えばマウスの左ボタンと右ボタンが同時に押されている場合は、Control.MouseButtonsプロパティの値は「MouseButtons.Left | MouseButtons.Right」(VB.NETでは、「MouseButtons.Left Or MouseButtons.Right」)になります。