インストール
書庫ファイル内の「IROHA.MouseGestureControl.dll」を適当な場所に展開します。
使用方法およびサンプルプロジェクト作成
サンプルとしてWindowsアプリケーションを作成します。
- Windowsアプリケーションプロジェクトを開き、「IROHA.MouseGestureControl.dll」を参照に追加します。
- ツールボックスのカスタマイズで「IROHA.MouseGestureControl.dll」を参照してMouseGestureコントロールを追加します。
- MouseGestureをフォームに貼り付けます。
また、TabControl、Button2つ、StatusBarPanelを貼り付けます。
- 以下のコードを実装します。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button1.Text = MouseGesture1.Visible.ToString
Button2.Text = "ジェスチャー"
MouseGesture1.MinMove = 30 ' 単位移動距離を30ドットに変更
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' マウスジェスチャーの制御を変える
MouseGesture1.Visible = Not MouseGesture1.Visible
Button1.Text = MouseGesture1.Visible.ToString
End Sub
Private Sub MouseGesture1_OnStart() Handles MouseGesture1.OnStart
' ジェスチャーが開始された
StatusBarPanel1.Text = String.Empty
End Sub
Private Sub MouseGesture1_OnMove(ByVal Count As Integer, ByVal enDirection As IROHA.MouseGestureControl.MouseGesture.Direction) Handles MouseGesture1.OnMove
' ジェスチャー中
StatusBarPanel1.Text += GetGesture(enDirection)
End Sub
Private Sub MouseGesture1_OnEnd(ByVal enDirections() As IROHA.MouseGestureControl.MouseGesture.Direction) Handles MouseGesture1.OnEnd
' ジェスチャーが終了した
If (enDirections.Length = 1) Then
If (enDirections(0) = IROHA.MouseGestureControl.MouseGesture.Direction.RIGHT) Then
If (TabControl1.SelectedIndex < TabControl1.TabCount - 1) Then
TabControl1.SelectedIndex += 1
StatusBarPanel1.Text = String.Empty
End If
ElseIf (enDirections(0) = IROHA.MouseGestureControl.MouseGesture.Direction.LEFT) Then
If (TabControl1.SelectedIndex > 0) Then
TabControl1.SelectedIndex -= 1
StatusBarPanel1.Text = String.Empty
End If
End If
ElseIf (enDirections.Length = 2) Then
If (enDirections(0) = IROHA.MouseGestureControl.MouseGesture.Direction.DOWN AndAlso _
enDirections(1) = IROHA.MouseGestureControl.MouseGesture.Direction.UP) Then
Me.Close()
End If
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
' 直前のジェスチャーを取得
MsgBox(GetGestures(MouseGesture1.Gesture))
End Sub
Private Function GetGestures(ByVal enDirections() As IROHA.MouseGestureControl.MouseGesture.Direction) As String
Dim strGesture As String = ""
Dim intI As Integer
enDirections = MouseGesture1.Gesture
For intI = 0 To enDirections.Length - 1
strGesture += GetGesture(enDirections(intI))
Next
Return strGesture
End Function
Private Function GetGesture(ByVal enDirection As IROHA.MouseGestureControl.MouseGesture.Direction) As String
Select Case enDirection
Case IROHA.MouseGestureControl.MouseGesture.Direction.UP
Return "↑"
Case IROHA.MouseGestureControl.MouseGesture.Direction.DOWN
Return "↓"
Case IROHA.MouseGestureControl.MouseGesture.Direction.RIGHT
Return "→"
Case IROHA.MouseGestureControl.MouseGesture.Direction.LEFT
Return "←"
End Select
Return ""
End Function
Private Sub TabPage_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TabPage1.MouseUp, TabPage2.MouseUp, TabPage3.MouseUp
If e.Button = MouseButtons.Right Then
MessageBox.Show("右クリック")
End If
End Sub
- ビルドします。
サンプルの実行
- Windowsアプリケーションを実行します。
- フォーム上の任意の場所でマウスの右ボタンをクリックします。
- クリックしたままマウスを右方向に動かします。
ステータスバーに「→」が表示されたらマウスの右ボタンを離します。
⇒タブが右に1つ移動します。
- 同様に右クリックしたまま左に動かします。
⇒タブが左に1つ移動します。
- 右クリックをしてすぐ離します。
⇒メッセージボックスが表示されます。
- 「True」と表示されているボタンを押します。
表示が「False」に替わり、マウスジェスチャーが動作しなくなります。
再度ボタンを押すと「True」となりマウスジェスチャーが動作します。
- 「ジェスチャー」と表示されているボタンを押します。
直前に操作したジェスチャーが表示されます。
- 右クリックしたままマウスを「下、上」と動かします。
⇒サンプルプログラムが終了します。
注意事項
ソース公開について
マウスジェスチャーコントロールのソースファイルを有償にて公開しています。詳しくはiroha@grn.janis.or.jpまでお問い合わせ下さい。
|