ここでは、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 プロパティを使用します。