TouchToolKit for WinForms
基本的な使い方
TouchToolKit の使い方 > C1ApplicationZoomコンポーネント > 基本的な使い方

ここでは、C1ApplicationZoomコンポーネントの基本的な使用方法について解説します。

概要

C1ApplicationZoomコンポーネントをスタートアップフォームに配置すると、プロジェクトに含まれるすべてのフォームをタッチによるズーム操作に対応できます。

スタートアップフォームとは、Visual Basicではプロジェクトのプロパティで「スタートアップフォーム」のドロップダウンリストで選択されているフォームです。Visual C#ではアプリケーションのメインエントリポイント、たとえばProgram.cs内のMain関数で、Application.Runメソッドに引数として渡されるフォームです。

C1ApplicationZoomコンポーネントは、System.Windows.Forms.ApplicationクラスのOpenFormsプロパティで参照可能なすべてのフォームに、自動的にC1Zoomコンポーネントを追加します。すでにC1ZoomコンポーネントまたはC1ZoomPanelコントロールがそのフォームに配置されている場合には、C1ApplicationZoomコンポーネントはそのフォームを除外します。したがって、特定のフォームにカスタマイズしたズーム設定を適用するために引き続きそれらのコントロールを使うことができます。

注意:

関連付けられたC1Zoomコンポーネント

C1ApplicationZoomクラスのGetC1Zoomメソッドを使用して、特定のフォームに関連付けられたC1Zoomコンポーネントをコードにより取得できます。このメソッドはC1ApplicationZoomオブジェクトのインスタンスの有無に関わらず利用できます。

Visual Basic コードの書き方

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

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim subForm As New Form2()

    Dim C1Zoom As C1Zoom = C1ApplicationZoom.GetC1Zoom(subForm)

    If C1Zoom Is Nothing Then
        MessageBox.Show("Form2にC1Zoomコンポーネントはありません。")
    Else
        MessageBox.Show("Form2にC1Zoomコンポーネントがあります。")
        C1Zoom.AboutBox()
    End If

    subForm.Show()
End Sub

C# コードの書き方

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

private void button1_Click(object sender, EventArgs e)
{
    Form2 subForm = new Form2();

    C1Zoom C1Zoom = C1ApplicationZoom.GetC1Zoom(subForm);
    if (C1Zoom == null)
    {
        MessageBox.Show("Form2にC1Zoomコンポーネントはありません。");
    }
    else
    {
        MessageBox.Show("Form2にC1Zoomコンポーネントがあります。");
        C1Zoom.AboutBox();
    }
    subForm.Show();
}

フォームごとに割り当てられたC1Zoomのイベントを使用する

以下の手順では、フォームごとにC1ApplicationZoomコンポーネントによって割り当てられたC1Zoomコンポーネントのイベントを使って、ズーム時に各フォームのタイトルバーにズーム率を表示します。

  1. Windowsフォームプロジェクトを新規に作成します。
  2. フォーム(Form1)にボタン(Button1)を追加します。
  3. 新たにフォーム(Form2)を追加します。
  4. Form2に任意のボタンやチェックボックスコントロールなどを追加します。
  5. Form1のButton1のClickイベントに次のコードを実装し、ボタンクリックによりForm2が表示されるように設定します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim f2 As New Form2()
        f2.Show()
    End Sub
    

    C# コードの書き方

    C#
    コードのコピー
    private void button1_Click(object sender, EventArgs e)
    {
        Form2 f2 = new Form2();
        f2.Show();
    }
    
  6. フォーム(Form1)にC1ApplicationZoomコンポーネント(C1ApplicationZoom1)を追加します。
  7. 次のように実装します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Imports C1.Win.C1TouchToolKit
    
    Private Sub C1ApplicationZoom1_C1ZoomAttaching(sender As Object, e As C1ZoomAttachingEventArgs) Handles C1ApplicationZoom1.C1ZoomAttaching
        If TypeOf e.Form Is Form2 Then
            e.C1Zoom.ZoomFactor = 2.0F
            AddHandler e.C1Zoom.ZoomFactorChanged, AddressOf C1Zoom_ZoomFactorChanged
        End If
    End Sub
    
    Private Sub C1Zoom_ZoomFactorChanged(sender As Object, e As EventArgs)
        Dim C1Zoom As C1Zoom = DirectCast(sender, C1Zoom)
        Form.ActiveForm.Text = String.Format("{0:P}", C1Zoom.ZoomFactor)
    End Sub
    
    Private Sub C1ApplicationZoom1_C1ZoomDetached(sender As Object, e As C1ZoomDetachedEventArgs) Handles C1ApplicationZoom1.C1ZoomDetached
        If TypeOf e.Form Is Form2 Then
            RemoveHandler e.C1Zoom.ZoomFactorChanged, AddressOf C1Zoom_ZoomFactorChanged
        End If
    End Sub
    

    C# コードの書き方

    C#
    コードのコピー
    using C1.Win.C1TouchToolKit;
    
    private void C1ApplicationZoom1_C1ZoomAttaching(object sender, C1ZoomAttachingEventArgs e)
    {
        if (e.Form is Form2)
        {
            e.C1Zoom.ZoomFactor = 2.0f;
            e.C1Zoom.ZoomFactorChanged += new EventHandler(C1Zoom_ZoomFactorChanged);
        }
    }
    
    private void C1Zoom_ZoomFactorChanged(object sender, EventArgs e)
    {
        C1Zoom C1Zoom = sender as C1Zoom;
        Form.ActiveForm.Text = string.Format("{0:P}", C1Zoom.ZoomFactor);
    }
    
    private void C1ApplicationZoom1_C1ZoomDetached(object sender, C1ZoomDetachedEventArgs e)
    {
        if (e.Form is Form2)
        {
            e.C1Zoom.ZoomFactorChanged -= new EventHandler(C1Zoom_ZoomFactorChanged);
        }
    }
    
  8. プロジェクトを実行し、Form1のButton1をクリックし、Form2を表示します。 
注意