TouchToolKit for WinForms
ポインタイベントの検出
TouchToolKit の使い方 > C1TouchEventProviderコンポーネント > ポインタイベントの検出

C1TouchEventProviderコンポーネントでは、指によるタッチやペンといったポインタデバイスによるコントロール領域でのアクションを検出できます。

ポインタデバイスの検出

ポインタ関連イベントでのイベントパラメータのPointerEventArgsクラスのDeviceTypeプロパティを使用することで、イベントを発生させたのが指によるタッチか、ペンかを検出することができます。

次のコードは、TextBoxコントロール(TextBox1)の領域にポインタが入ったときに、ポインタデバイスがタッチかペンかを検出します。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Imports C1.Win.C1TouchToolKit

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    C1TouchEventProvider1.SetEnableTouchEvents(TextBox1, True)
End Sub

Private Sub C1TouchEventProvider1_PointerEntered(sender As Object, e As PointerEventArgs) Handles C1TouchEventProvider1.PointerEntered
    If e.TargetControl Is TextBox1 Then
        If e.DeviceType = PointerDeviceType.Touch Then
            MessageBox.Show("タッチで押されました")
        ElseIf e.DeviceType = PointerDeviceType.Pen Then
            MessageBox.Show("ペンで押されました")
        End If
    End If
End Sub

C# コードの書き方

C#
コードのコピー
using C1.Win.C1TouchToolKit;

private void Form1_Load(object sender, EventArgs e)
{
    C1TouchEventProvider1.SetEnableTouchEvents(this.button1, true);
    C1TouchEventProvider1.PointerEntered += C1TouchEventProvider1_PointerEntered;
}

 

private void C1TouchEventProvider1_PointerEntered(object sender, PointerEventArgs e)
{
    if (e.TargetControl == TextBox1)
    {
        if (e.DeviceType == PointerDeviceType.Touch)
        {
            MessageBox.Show("タッチで押されました");
        }
        else if (e.DeviceType == PointerDeviceType.Pen)
        {
            MessageBox.Show("ペンで押されました");
        }
    }
}

ペンフリックの抑止

ペンでフリック操作を行った時、Windowsのコントロールパネルの設定に従ってコントロールにスクロールなどのメッセージが送出されることがあります。これは「ペンフリック」と呼ばれる機能です。C1ToucheventProvider.EnablePenFlicksプロパティをFalseに設定すると、ペンフリックを抑止できます。


Visual Basic コードの書き方

Visual Basic
コードのコピー
C1TouchEventProvider1.EnablePenFlicks = False

C# コードの書き方

C#
コードのコピー
C1TouchEventProvider1.EnablePenFlicks = false;