拡大鏡の動作に関連したイベントについて解説します。
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イベントが発生します。