ここでは、C1ApplicationZoomコンポーネントの基本的な使用方法について解説します。
C1ApplicationZoomコンポーネントをスタートアップフォームに配置すると、プロジェクトに含まれるすべてのフォームをタッチによるズーム操作に対応できます。
スタートアップフォームとは、Visual Basicではプロジェクトのプロパティで「スタートアップフォーム」のドロップダウンリストで選択されているフォームです。Visual C#ではアプリケーションのメインエントリポイント、たとえばProgram.cs内のMain関数で、Application.Runメソッドに引数として渡されるフォームです。
C1ApplicationZoomコンポーネントは、
System.Windows.Forms.Applicationクラスの
OpenFormsプロパティで参照可能なすべてのフォームに、自動的にC1Zoomコンポーネントを追加します。すでにC1ZoomコンポーネントまたはC1ZoomPanelコントロールがそのフォームに配置されている場合には、C1ApplicationZoomコンポーネントはそのフォームを除外します。したがって、特定のフォームにカスタマイズしたズーム設定を適用するために引き続きそれらのコントロールを使うことができます。
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();
}
                     | 
                |
以下の手順では、フォームごとにC1ApplicationZoomコンポーネントによって割り当てられたC1Zoomコンポーネントのイベントを使って、ズーム時に各フォームのタイトルバーにズーム率を表示します。
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();
}
                             | 
                        |
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);
    }
}
                             | 
                        |
System.Windows.Forms.Form クラスの
ActiveForm プロパティを使用します。