TouchToolKit for WinForms
拡大鏡とイベント
TouchToolKit の使い方 > C1Magnifyコンポーネント > 拡大鏡とイベント

拡大鏡の動作に関連したイベントについて解説します。

対象のコントロールに応じた拡大鏡の設定

C1Magnify.MagnifierShowingイベントを使用すると、拡大鏡が表示される直前に拡大鏡の設定を変更できます。このイベントにより、対象のコントロールに応じて異なる外観の拡大鏡を表示することも可能です。また、このイベントでイベントパラメータのe.CancelプロパティがTrueのとき拡大鏡の表示をキャンセルできます。

次のコードは、TextBoxコントロールに対して四角形の拡大鏡を表示し、NumericUpDownコントロールに対しては拡大鏡を表示しません。それ以外のコントロールに対して円形の拡大鏡を表示します。

Visual Basic コードの書き方

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

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    C1Magnify1.SetEnableMagnifier(TextBox1, True)
    C1Magnify1.SetEnableMagnifier(NumericUpDown1, True)
End Sub

Private Sub C1Magnify1_MagnifierShowing(sender As System.Object, e As C1.Win.C1TouchToolKit.MagnifierShowingEventArgs) Handles C1Magnify1.MagnifierShowing
    If e.TargetControl Is TextBox1 Then
        Dim magnifier As C1Magnify = DirectCast(sender, C1Magnify)
        magnifier.Shape = MagnifierShape.Rectangle
        magnifier.Size = New Size(200, 30)
    Else If e.TargetControl Is NumericUpDown1 Then
        e.Cancel = True
    Else
        Dim magnifier As C1Magnify = DirectCast(sender, C1Magnify)
        magnifier.Shape = MagnifierShape.Circle
        magnifier.Size = New Size(100, 100)
    End If
End Sub

C# コードの書き方

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

private void Form1_Load(object sender, EventArgs e)
{
    C1Magnify1.SetEnableMagnifier(textBox1, true);
    C1Magnify1.SetEnableMagnifier(numericUpDown1, true);
}

private void C1Magnify1_MagnifierShowing(object sender, MagnifierShowingEventArgs e)
{
    if (e.TargetControl == textBox1)
    {
        C1Magnify magnifier = sender as C1Magnify;
        magnifier.Shape = MagnifierShape.Rectangle;
        magnifier.Size = new Size(200, 30);
    }
    else if (e.TargetControl == numericUpDown1)
    {
        e.Cancel = true;
    }
    else
    {
        C1Magnify magnifier = sender as C1Magnify;
        magnifier.Shape = MagnifierShape.Circle;
        magnifier.Size = new Size(100, 100);
    }
}

拡大鏡を閉じるときの処理

C1Magnify.MessageWhenCloseプロパティを使用すると、拡大鏡を閉じるときのコントロールに対するアクションを設定できます。既定値はMessageWhenClose.Noneです。

MessageWhenCloseの値 説明
None なし
LeftClick 左クリック
RightClick 右クリック

C1Magnify.Closedイベントを使用すると、ユーザー定義のアクションを実装できます。次のコードは、拡大鏡が閉じたときにTextBoxコントロールのすべての文字列を選択します。

Visual Basic コードの書き方

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

Private Sub C1Magnify1_Closed(sender As System.Object, e As MagnifierEventArgs) Handles C1Magnify1.Closed
    If TypeOf e.TargetControl Is TextBox Then
        ' Send Ctrl+a
        SendKeys.Send("^a")
    End If
End Sub

C# コードの書き方

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

private void C1Magnify1_Closed(object sender, MagnifierEventArgs e)
{
    if (e.TargetControl is TextBox)
    {
        // Send Ctrl+a
        SendKeys.Send("^a");
    }
}

拡大鏡を動かすときの処理

C1Magnify.MessageWhenMoveプロパティを使用すると、拡大鏡を動かすときのコントロールに対するアクションを設定できます。既定値はMessageWhenMove.Moveです。

MessageWhenMoveの値 説明
None なし
Move 指の移動
LeftDown マウスの左ボタン押下

拡大鏡が移動しているときには、Moveイベントが発生します。