ここでは、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); } } |