TouchToolKit for WinForms - GrapeCity...主な特長主な特長 TouchToolKit for WinForms...

85
TouchToolKit for WinForms 2018.11.26 更新 グレープシティ株式会社 グレープシティ株式会社

Transcript of TouchToolKit for WinForms - GrapeCity...主な特長主な特長 TouchToolKit for WinForms...

  • TouchToolKit for WinForms2018.11.26 更新

    グレープシティ株式会社グレープシティ株式会社

  • 目次

    はじめに 3

    主な特長 4-5

    製品構成 6

    クイックスタート 7-8

    TouchToolKit の使い方 9

    C1Zoomコンポーネント 9

    ズーム 9-13

    スクロール 13-16

    パンウィンドウ 16-18

    フォームのリサイズ 18

    ズーム率とフォームサイズを同時に変更する 18-20

    フルスクリーンモード 20

    ズームのイベント 20-25

    フォームとの互換性 25-26

    C1ZoomPanelコントロール 26-27

    基本的な使い方 27-30

    パネルとの互換性 30-31

    C1ApplicationZoomコンポーネント 31

    基本的な使い方 31-35

    特定のフォームの設定 35-36

    C1ZoomCommandProviderコンポーネント 36

    基本的な使い方 36-38

    コントロールバー 38-41

    C1Magnifyコンポーネント 41

    基本的な使い方 41-43

    拡大鏡の外観を変更する 43-45

    拡大鏡とイベント 45-47

    C1MultiScaleImageコントロール 47-48

    基本的な使い方 48-49

    C1TouchEventProviderコンポーネント 49

    基本的な使い方 49-55

      TouchToolKit for WinForms

    1 Copyright © GrapeCity, Inc. All rights reserved.         

  • タップ関連イベントの検出 55-57

    ジェスチャイベントの検出 57-59

    ポインタイベントの検出 59-61

    ズームポリシー 61-62

    ズームポリシーテンプレートの登録 62

    基本的な使い方 62-65

    標準コントロール 65-68

    ActiveReports for .NET 68-69

    ComponentOne for WinForms 69-72

    InputMan for Windows Forms 72-74

    LEADTOOLS Imaging Pro 74-75

    MultiRow for Windows Forms 75

    PlusPak for Windows Forms 75-80

    SPREAD for Windows Forms 80

    Visual Basic Power Packs 80-81

    WPF相互運用機能 81

    ユーザー定義のズームポリシー 81-83

    よくある質問と回答 84

    TouchToolKit for WinForms  

    2 Copyright © GrapeCity, Inc. All rights reserved.         

  • はじめにはじめに

    TouchToolKit for WinForms は既存の Windows フォームアプリケーションをタッチ可能なアプリケーションとして使用できるソリューションです。

    TouchToolKit ではタッチ機能を持つコンポーネントを7つ用意しています。コンポーネントは次のようになります。

    C1ApplicationZoomC1MagnifyC1MultiScaleImageC1TouchEventProviderC1ZoomC1ZoomPanelC1ZoomCommandsProvider

    C1Zoom コンポーネントをフォームに追加すると、ユーザーが2本の指の間を広げる操作によってそのフォームを拡大して使用できるようになります。この操作は「ピンチアウト」または「ストレッチ」としてタッチ対応のデバイスでよく知られています。さら

    に、TouchToolKit を使用して既存のフォームを最適化し、マウス操作とタッチ操作でそれぞれの処理をできるようなります。

      TouchToolKit for WinForms

    3 Copyright © GrapeCity, Inc. All rights reserved.         

  • 主な特長主な特長

    TouchToolKit for WinFormsには、次のような優れた特長があります。これらの詳細については「TouchToolKit の使い方の使い方」で解説しています。

    コントロール1つでタッチ対応コントロール1つでタッチ対応

    C1Zoomコンポーネントコンポーネントをフォームに配置するだけで、フォーム全体をマルチタッチ操作で拡大、縮小できます。タッチで操作しにくい小さなボタンや、スレートPCの画面では小さく表示されるキャプションを拡大し、操作性を大幅に改善できます。元の画面レイアウトをタッチ操作に合わせて書き換える必要はありません。タッチ対応に伴って画面の操作体

    系を変える必要がないため、マニュアルの書き直しやエンドユーザーの再教育といった負担を軽減できます。最小のコ

    ストで従来のマウス、キーボード操作に加えてタッチやペンに対応できます。

    軽快なパフォーマンス軽快なパフォーマンス

    タッチでのズーム操作中は画面をビットマップに置き換えてズーム結果のプレビューを表示しているので、軽快な動作

    を実現しています。また、ビットマップのプレビューを表示せずにズーム率の文字列を表示することもできるので、さらに

    軽快なズーム操作を実現できます。

    サードパーティコントロールを使っていても安心サードパーティコントロールを使っていても安心

    TouchToolKit のズーム機能は標準コントロールと最新のグレープシティ製品と共にテストされており、最適に使用するための処理が「ズームポリシズームポリシ」として提供されます。ポリシーファイルには40以上のコントロールに対応するコードが含まれ、開発者が変更することもできます。もちろん、他のコントロールに対応する処理を開発者が自由に作成することも

    できます。

    拡大箇所を把握できるパンウィンドウ拡大箇所を把握できるパンウィンドウ

    フォーム全体と拡大されている領域をパンウィンドウパンウィンドウと呼ばれる別ウィンドウで表示できます。フォームを大きく拡大した

    状態でも、どの部分が拡大されているのかをユーザーが容易に把握できます。

    操作を視覚化できるコントロールバー操作を視覚化できるコントロールバー

    コントロールバーコントロールバーを使用すると、フォーム上で利用可能なタッチ操作(拡大、縮小、スクロール)をボタンとして表示し、

    タッチ操作が可能なことをユーザーに明示できます。

    1コントロールで全フォームをタッチ対応1コントロールで全フォームをタッチ対応

    C1ApplicationZoomコンポーネントコンポーネントをスタートアップフォームに配置すると、プロジェクトに含まれる全フォームをマルチタッチ操作でズーム可能にできます。フォームの数が多く、フォームごとの設定の違いが少ない場合にC1Zoomコンコンポーネントポーネントの代わりに使える方法です。

    画面の一部をタッチ対応画面の一部をタッチ対応

    フォームの一部だけをマルチタッチ操作で拡大、縮小できるC1ZoomPanelコントロールコントロールを提供します。このコントロールはコンテナとして動作するため、標準のPanelコントロールと同じように任意の場所に配置し、コントロールを載せてズーム可能なUIを構築できます。

    拡大鏡でタッチ操作を補助拡大鏡でタッチ操作を補助

    TextBoxコントロールなどでは、テキストを選択するには指でテキストを直接なぞる必要があり、選択している部分が指で隠れてしまいます。C1Magnifyコンポーネントコンポーネントが提供する拡大鏡を使うと、タッチで操作している内容を指先に拡大表示できるので快適に操作できます。

    既存コントロールにタッチ対応イベントをプラス既存コントロールにタッチ対応イベントをプラス

    C1TouchEventProviderコンポーネントコンポーネントにより、任意の標準コントロールに16種類のタッチ関連イベントと9種類のジェスチャーの検出を追加できます。マウス操作に対するClickイベントを実装するのと同じように、タッチ操作やペン操作に対してTappedイベントを実装できます。

    TouchToolKit for WinForms  

    4 Copyright © GrapeCity, Inc. All rights reserved.         

  • 拡大率に応じた高品位画像を表示拡大率に応じた高品位画像を表示

    C1MultiScaleImageコントロールコントロールは解像度や拡大率に応じて複数のソースを切り替えて表示できます。ズームによって拡大した画面に自動的に高解像度画像を表示することで画面を高い品位で表現できます。C1Zoomコンポーネンコンポーネントト併用することで、高解像度に対応した画面デザインを提供できます。

      TouchToolKit for WinForms

    5 Copyright © GrapeCity, Inc. All rights reserved.         

  • 製品構成製品構成

    TouchToolKit はズーム用のコントロール、サンプル、ヘルプなどから構成されています。

    コントロールコントロール

    呼称 コントロール名 説明

    ズームコンポーネントズームコンポーネント C1Zoom フォームをタッチ操作でズーム可能にするコンポーネント。

    ズームパネルコントロールズームパネルコントロール C1ZoomPanel 子コントロールをタッチ操作でズーム可能にするコンテナ。

    アプリケーションズームコンアプリケーションズームコン

    ポーネントポーネント

    C1ApplicationZoom アプリケーションに含まれるすべてのフォームをズーム可能にするコンポーネント。

    ズームコマンドプロバイダーコズームコマンドプロバイダーコ

    ンポーネントンポーネント

    C1ZoomCommandProvider ユーザーコントロールでコントロールバーのコマンドを実装するためのコンポーネント。

    マグニファイアコンポーネントマグニファイアコンポーネント C1Magnifier タッチ操作したとき指先に拡大鏡をポップアップするコンポーネント。

    マルチスケールイメージコントマルチスケールイメージコント

    ロールロール

    C1MultiScaleImage 複数解像度のイメージを保持できるPictureBoxコントロール。

    タッチイベントプロバイダーコンタッチイベントプロバイダーコン

    ポーネントポーネント

    C1TouchEventProvider タッチ操作を検出するイベントを提供するコンポーネント。

    サンプルサンプル

    製品の使用例をまとめたプログラム集です。サンプルは、まったく同じプロジェクトがVisual BasicとC#の2種類の言語で作成されています。サンプルの目的や使用方法を説明したサンプルヘルプも付属しています。

    製品ヘルプ製品ヘルプ

    今、ご覧いただいているものです。製品をご利用いただくために必要なあらゆる情報が記載されています。

    リリースノートリリースノート

    製品をインストールしたフォルダにコピーされています。インストールなどの製品に関する基本事項の説明書ですので、必ず目

    を通すことをおすすめします。

    TouchToolKit for WinForms  

    6 Copyright © GrapeCity, Inc. All rights reserved.         

  • クイックスタートクイックスタート

    ここではTouchToolKitの基本的な操作方法を、簡単なアプリケーションの作成を通して紹介します。

    TouchToolKitの操作方法の操作方法

    1. Visual Studioで新規にWindowsフォーム アプリケーション プロジェクトを作成するか、または既存のWindowsフォーム アプリケーション プロジェクトを開きます。

    2. ツールボックスから「C1Zoom」コンポーネントを選択し、フォームに追加します。3. プロジェクトを実行します。4. フォームを2本の指でタッチし、指を画面に触れたまま指と指の間隔を広げます。

    すると、間隔に応じてフォーム内のコントロールが拡大するため、タッチで操作しやすい大きさになったと感じたら、指を止めて

    画面から指を離します。

    5. 大きくなった状態で他のコントロールを操作するには、画面に指を触れたまま、コントロールを移動したい方向に指を動かします。これはタッチで「パン」と呼ばれる操作です。

      TouchToolKit for WinForms

    7 Copyright © GrapeCity, Inc. All rights reserved.         

  • 6. 大きくなったコントロールをタッチで操作後、再度2本の指でタッチし、指を画面に触れたまま指と指の間隔を狭くするとコントロールを元の大きさに戻せます。

    7. 以上の操作により、TouchToolKit を使って元の画面デザインを保ったままタッチで必要に応じてフォームのコントロールをズームして操作できるようになります。

    この操作は一般的なモバイルデバイスでピンチ、ピンチアウトまたはストレッチと呼ばれ、スマートフォンやタブレットデバイスに認知さ

    れています。

    参考参考

    2本の指を画面に触れたまま指を互いに遠ざける操作 2本の指を画面に触れたまま指を互いに近づける操作

    操作の結果 拡大 縮小

    Windows 8 ストレッチ ピンチ

    iOS、Android ピンチアウト ピンチイン

    TouchToolKit for WinForms  

    8 Copyright © GrapeCity, Inc. All rights reserved.         

  • TouchToolKit の使い方の使い方TouchToolKitの使い方について、以下の項目に分けて説明します。

    C1ZoomコンポーネントコンポーネントC1ZoomPanelコントロールコントロールC1ApplicationZoomコンポーネントコンポーネントC1ZoomCommandProviderコンポーネントコンポーネントC1MagnifierコンポーネントコンポーネントC1MultiScaleImageコントロールコントロールC1TouchEventProviderコンポーネントコンポーネントズームポリシーズームポリシー

    C1ZoomコンポーネントコンポーネントC1Zoomコンポーネントを任意のフォームに配置するだけで、フォームはタッチによるズームに対応できます。既存の画面デザインを保ったまま、タッチで操作する場合に必要に応じて画面を拡大できるようになります。

    ここでは、C1Zoomコンポーネントの使用方法について説明します。

    ズームズーム

    スクロールスクロール

    パンウィンドウパンウィンドウ

    フォームのリサイズフォームのリサイズ

    ズーム率とフォームサイズを同時に変更するズーム率とフォームサイズを同時に変更する

    フルスクリーンモードフルスクリーンモード

    ズームのイベントズームのイベント

    フォームとの互換性フォームとの互換性

    プロジェクトに含まれるすべてのフォームをズームするには「C1ApplicationZoomコンポーネントコンポーネント」を参照してください。

    ズームズーム

    C1Zoomコンポーネントを配置したフォームを2本の指でタッチし、指を画面に触れたまま指と指の間隔を広げるとフォーム上のコントロールをズームできます。

    この機能はC1Zoom.AllowPinchZoomプロパティがTrueのときに有効です。

    コードによるズーム率の設定または取得コードによるズーム率の設定または取得

    C1Zoom.ZoomFactorプロパティで設定または取得できます。次のコードはボタンのクリックによってズーム率を200%に変更します。

    Visual Basic コードの書き方

    Visual Basic

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click C1Zoom1.ZoomFactor = 2.0FEnd Sub

    C# コードの書き方

      TouchToolKit for WinForms

    9 Copyright © GrapeCity, Inc. All rights reserved.         

  • C#

    private void button1_Click(object sender, EventArgs e){ C1Zoom1.ZoomFactor = 2.0f;}

    ズーム率の最大値ズーム率の最大値

    C1Zoom.MaxZoomFactorプロパティで設定します。ズーム率の最小値は100%で固定です。

    Visual Basic コードの書き方

    Visual Basic

    ' ズーム率の最大値を400%にするC1Zoom1.MaxZoomFactor = 4.0F

    C# コードの書き方

    C#

    // ズーム率の最大値を400%にするC1Zoom1.MaxZoomFactor = 4.0f;

    ダブルタップによるズームダブルタップによるズーム

    既定ではダブルタップ(画面をすばやく2回タップする)によるズームが有効です。この機能

    はC1Zoom.AllowDoubleTapZoomプロパティをFalseにすると無効にできます。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.AllowDoubleTapZoom = False

    C# コードの書き方

    C#

    C1Zoom1.AllowDoubleTapZoom = false;

    ズーム中のプレビュー表示ズーム中のプレビュー表示

    既定では、タッチ操作によるズーム中に結果のプレビューが表示されます。このプレビューにより、ユーザーはズーム率によら

    ずにタッチに最適な大きさを目視で決定できます。

    パフォーマンスの向上、プレビュー中の制限の回避、他の機能との動作の統一といった要求に合わせてこの機能は無効にで

    きます。C1Zoom.ZoomPreviewModeプロパティがNoPreviewのときプレビューを表示しません。また、AlternativeContentのときズーム率またはズーム中を示す文字列を代わりに表示できます。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.ZoomPreviewMode = C1.Win.C1TouchToolKit.ZoomPreviewMode.AlternativeContent

    C# コードの書き方

    TouchToolKit for WinForms  

    10 Copyright © GrapeCity, Inc. All rights reserved.         

  • C#

    C1Zoom1.ZoomPreviewMode = C1.Win.C1TouchToolKit.ZoomPreviewMode.AlternativeContent;

    代替コンテンツ代替コンテンツ

    C1Zoom.ZoomPreviewModeプロパティがAlternativeContentのとき、ズーム中であることを示す文字列を表示できます。この文字列のフォント、文字色、メッセージはC1Zoom.AlternativeContentSettingsプロパティで設定します。AlternativeContentSettings.Formatプロパティの文字列に“{Percentage}”を入力すると、その部分は現在のズーム率を百分率で表示した値に置換されます。“{ZoomFactor}”を入力するとズーム率の倍率に置換します。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.ZoomPreviewMode = C1.Win.C1TouchToolKit.ZoomPreviewMode.AlternativeContentC1Zoom1.AlternativeContentSettings.Font = New Font("MS ゴシック", 20.0F)C1Zoom1.AlternativeContentSettings.ForeColor = Color.BlueC1Zoom1.AlternativeContentSettings.Format = "ズーム中 x{ZoomFactor}"

    C# コードの書き方

    C#

    C1Zoom1.ZoomPreviewMode = C1.Win.C1TouchToolKit.ZoomPreviewMode.AlternativeContent;C1Zoom1.AlternativeContentSettings.Font = new Font("MS ゴシック", 20.0f);C1Zoom1.AlternativeContentSettings.ForeColor = Color.Blue;C1Zoom1.AlternativeContentSettings.Format = "ズーム中 x{ZoomFactor}";

    スナップポイントスナップポイント

    タッチでは大まかな操作が可能なため、ユーザーはタッチ操作で197%や202%といったズーム率を設定できます。これを200%のようにきりのいい値に自動的に揃える仕組みが「スナップ」です。スナップポイントはきりのいい値のコレクションと、スナップを発動する基準となる前後数パーセントの値を指定します。

    Visual Basic コードの書き方

    Visual Basic

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load C1Zoom1.ZoomPreviewMode = C1.Win.C1TouchToolKit.ZoomPreviewMode.AlternativeContent

    ' 最大ズーム率を400%にする C1Zoom1.MaxZoomFactor = 4.0F

    ' スナップ間隔を5%にする C1Zoom1.ZoomSnapDistance = 0.05F

    ' 195%~205%を200%にスナップする C1Zoom1.ZoomSnapPoints.Add(2.0F)

    ' 295%~305%を300%にスナップする C1Zoom1.ZoomSnapPoints.Add(3.0F)End Sub

      TouchToolKit for WinForms

    11 Copyright © GrapeCity, Inc. All rights reserved.         

  • Private Sub C1Zoom1_ZoomFactorChanged(sender As System.Object, e As System.EventArgs) Handles C1Zoom1.ZoomFactorChanged Me.Text = String.Format("{0:P}", C1Zoom1.ZoomFactor)End Sub

    C# コードの書き方

    C#

    private void Form1_Load(object sender, EventArgs e){ C1Zoom1.ZoomPreviewMode = C1.Win.C1TouchToolKit.ZoomPreviewMode.AlternativeContent;

    // 最大ズーム率を400%にする C1Zoom1.MaxZoomFactor = 4.0f;

    // スナップ間隔を5%にする C1Zoom1.ZoomSnapDistance = 0.05f;

    // 195%~205%を200%にスナップする C1Zoom1.ZoomSnapPoints.Add(2.0f);

    // 295%~305%を300%にスナップする C1Zoom1.ZoomSnapPoints.Add(3.0f);}

    private void C1Zoom1_ZoomFactorChanged(object sender, EventArgs e){ this.Text = string.Format("{0:P}", C1Zoom1.ZoomFactor);}

    マウスホイールによるズームマウスホイールによるズーム

    Ctrlキーを押したままマウスのホイールを前方に回転するとフォームの拡大を実行できます。手前側に回転すると縮小になります。この機能を有効にするには、C1Zoom.AllowMouseWheelZoomプロパティをTrueに設定します。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.AllowMouseWheelZoom = True

    C# コードの書き方

    C#

    C1Zoom1.AllowMouseWheelZoom = true;

    注意注意

    C1Zoom.AllowPinchZoomプロパティがFalseの場合であっても、C1Zoom.AllowMouseWheelZoomプロパティがTrueの場合にはCtrlキー+マウスホイールのメッセージによってフォームがズーム可能になります。C1ZoomPanel.AllowMouseWheelZoomプロパティをTrueに設定したとき、C1ZoomPanelにフォーカスがない場合であってもピンチ操作によってC1ZoomPanelがズームします。

    TouchToolKit for WinForms  

    12 Copyright © GrapeCity, Inc. All rights reserved.         

  • ズーム時にコンテンツを中央に表示するズーム時にコンテンツを中央に表示する

    既定では、C1Zoomを配置したフォームをマウス操作によってズームするとフォーム上のコントロールが右下に向かって大きくなります。これは、フォーム上のコントロールが既定で左上に固定されているためです

    (Control.Anchor=TopLeft)。C1Zoom.InnerPanelLayoutModeプロパティをMiddleCenterに変更すると、コントロールはその位置を保持したまま中央に向かって拡大します。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.InnerPanelLayoutMode = C1.Win.C1TouchToolKit.InnerPanelLayoutMode.MiddleCenter

    C# コードの書き方

    C#

    C1Zoom1.InnerPanelLayoutMode = C1.Win.C1TouchToolKit.InnerPanelLayoutMode.MiddleCenter;

    ズーム時に背景を変更するズーム時に背景を変更する

    C1Zoomコンポーネントを配置したフォームのサイズを大きくした状態でズーム率を100%にすると、元のコンテンツがない部分に余白が生じます。この余白を背景として背景色または背景イメージを設定できます。

    背景色を設定するにはC1Zoom.BackColorプロパティを使用します。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.BackColor = Color.DarkGray

    C# コードの書き方

    C#

    C1Zoom1.BackColor = Color.DarkGray;

    背景イメージを設定するには、C1Zoom.BackgroundImageプロパティおよびC1Zoom.BackgroundImageLayoutプロパティを使用します。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.BackgroundImage = New Bitmap("Background.png")C1Zoom1.BackgroundImageLayout = ImageLayout.Tile

    C# コードの書き方

    C#

    C1Zoom1.BackgroundImage = new Bitmap("Background.png");C1Zoom1.BackgroundImageLayout = ImageLayout.Tile;

      TouchToolKit for WinForms

    13 Copyright © GrapeCity, Inc. All rights reserved.         

  • スクロールスクロール

    ここではスクロールに関連する動作について説明します。

    パンパン

    タッチ操作によってフォームを拡大したとき、画面にはフォームの一部のコントロールだけが表示されています。このとき、画面

    に指を触れたまま、コントロールを移動したい方向に指を動かすことでスクロールできます。これはタッチで「パン」と呼ばれる

    操作です。

    この操作はC1Zoom.AllowPanScrollプロパティをFalseにすることで無効にできます。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.AllowPanScroll = False

    C# コードの書き方

    C#

    C1Zoom1.AllowPanScroll = false;

    レールレール

    タッチによるスクロール操作では、既定でははじめに指を動かした方向にスクロール先が固定されます。たとえば、はじめに右

    方向に指を動かして画面をスクロールし、そのまま斜め右下や左下に向けて指を動かしても、画面は斜め方向にはスクロー

    ルせず、左右方向にだけスクロールします。同様に、はじめに上下方向にスクロールした状態で指を左右に振っても、上下方

    向にだけスクロールします。これはレールと呼ばれる、タッチ操作を補助する仕組みです。タッチではマウスよりも大まかな操

    作が可能になるため、このような仕組みが操作性の改善に役立ちます。

    レールを無効にするには、C1Zoom.IsHorizontalRailEnabled、C1Zoom.IsVerticalRailEnabledプロパティをそれぞれFalseに設定します。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.IsHorizontalRailEnabled = FalseC1Zoom1.IsVerticalRailEnabled = False

    C# コードの書き方

    C#

    C1Zoom1.IsHorizontalRailEnabled = false;C1Zoom1.IsVerticalRailEnabled = false;

    スクロールインジケータスクロールインジケータ

    C1Zoomコンポーネントでフォームをズームまたはスクロールしたとき、現在表示している範囲を示すバーが一定時間だけ表示されます。このバーを「スクロールインジケータ」と呼びます。次の図で赤い三角が指し示すバーがスクロールインジケータで

    す。

    TouchToolKit for WinForms  

    14 Copyright © GrapeCity, Inc. All rights reserved.         

  • スクロールインジケータを無効にするには、C1Zoom.ScrollIndicatorModeプロパティをNoneに設定します。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.ScrollIndicatorMode = C1.Win.C1TouchToolKit.ScrollIndicatorMode.None

    C# コードの書き方

    C#

    C1Zoom1.ScrollIndicatorMode = C1.Win.C1TouchToolKit.ScrollIndicatorMode.None;

    スクロールインジケータの代わりにスクロールバーを表示するには、C1Zoom.ScrollIndicatorModeプロパティをScrollBarに設定します。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.ScrollIndicatorMode = C1.Win.C1TouchToolKit.ScrollIndicatorMode.ScrollBar

    C# コードの書き方

    C#

    C1Zoom1.ScrollIndicatorMode = C1.Win.C1TouchToolKit.ScrollIndicatorMode.ScrollBar;

    スクロール限界の視覚化スクロール限界の視覚化

    C1Zoom.BoundaryFeedBackModeプロパティがSplitのとき、スクロール操作で画面の終端に到達したときに、画面をバウンドする視覚効果によって画面端に到達したことをユーザーに伝えることができます。

    このプロパティをStandardに変更すると、ウィンドウ全体をバウンドします。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.BoundaryFeedbackMode = C1.Win.C1TouchToolKit.BoundaryFeedbackMode.Standard

      TouchToolKit for WinForms

    15 Copyright © GrapeCity, Inc. All rights reserved.         

  • C# コードの書き方

    C#

    C1Zoom1.BoundaryFeedbackMode = C1.Win.C1TouchToolKit.BoundaryFeedbackMode.Standard;

    コントロールの自動表示コントロールの自動表示

    C1Zoom.AutoShowControlプロパティをTrueに設定すると、コントロールのフォーカスが移動したときやソフトキーボードが表示されたときにアクティブなコントロールが常に表示されるようにフォームを自動的にスクロールすることができます。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.AutoShowControl = True

    C# コードの書き方

    C#

    C1Zoom1.AutoShowControl = true;

    個別のコントロールに対して自動スクロールの動作を制御したい場合、C1Zoom.ControlAutoShowingイベントを使用します。コントロールが表示されている領域はC1Zoom.GetDisplayRectangleメソッドで取得できます。

    パンウィンドウパンウィンドウ

    ここではパンウィンドウについて説明します。

    パンウィンドウの概要パンウィンドウの概要

    パンウィンドウを使うとズーム対象のフォームの全体像を示すポップアップウィンドウが表示され、その中の表示されている範

    囲が赤枠で強調されます。パンウィンドウを使うと、ユーザーがズームされている場所を把握しやすくなります。

    TouchToolKit for WinForms  

    16 Copyright © GrapeCity, Inc. All rights reserved.         

  • パンウィンドウの表示パンウィンドウの表示

    パンウィンドウを表示するには、C1Zoom.ShowPanWindowメソッドを実行します。ShowPanWindowの引数でパンウィンドウの初期位置と初期サイズを指定できます。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.ShowPanWindow()

    C# コードの書き方

    C#

    C1Zoom1.ShowPanWindow();

    パンウィンドウを閉じるにはC1Zoom.ClosePanWindowメソッドを実行します。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.ClosePanWindow()

    C# コードの書き方

    C#

    C1Zoom1.ClosePanWindow();

    パンウィンドウが表示されているかどうかを知るには、C1Zoom.IsPanWindowShownプロパティを参照します。

    Visual Basic コードの書き方

    Visual Basic

      TouchToolKit for WinForms

    17 Copyright © GrapeCity, Inc. All rights reserved.         

  • Dim displayed As Boolean = C1Zoom1.IsPanWindowShown

    C# コードの書き方

    C#

    bool displayed = C1Zoom1.IsPanWindowShown;

    フォームのリサイズフォームのリサイズ

    ここではユーザーがフォームのサイズを変更するときの動作について説明します。

    アスペクト比の設定アスペクト比の設定

    C1Zoom.KeepAspectRatioプロパティをTrueに設定すると、ユーザーがフォームをサイズ変更するときの縦横のアスペクト比を維持できます。たとえばユーザーがフォームの幅だけを変更しても、この操作に合わせてフォームの高さが自動的に調整

    されます。

    次のコードは、サイズのアスペクト比を維持します。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.KeepAspectRatio = True

    C# コードの書き方

    C#

    C1Zoom1.KeepAspectRatio = true;

    なお、フォームの最小サイズは System.Windows.Forms.Formクラスの MinimumSizeプロパティ、最大サイズはMaximumSizeプロパティで設定できます。

    ズーム率とフォームサイズを同時に変更するズーム率とフォームサイズを同時に変更する

    ここでは、フォーム内のズーム率とフォームサイズを同じ比率で同時に変更する方法について説明します。C1Zoomコンポーネントはフォーム上のコントロールをC1Zoomコンポーネントが持つパネルに移動し、そのパネルとコントロールの大きさを変えることでズームを実現します。このため、フォームのいくつかの機能は以下のように変更が必要になります。

    フォームサイズにあわせてズーム率を変更するフォームサイズにあわせてズーム率を変更する

    TouchToolKit for WinForms  

    18 Copyright © GrapeCity, Inc. All rights reserved.         

    http://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.aspxhttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.minimumsize.aspxhttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.maximumsize.aspx

  • AllowZoomByResizeプロパティにTrueを設定すると、フォームをリサイズしたときにフォームサイズの変更率に合わせて、フォーム内のコントロールがズームされます。

    なお、この機能を有効にするには、InnerPanelLayoutModeプロパティにInnerPanelLayoutMode.MiddleCenterを設定する必要があります。

    注意注意

    C1ZoomクラスのZoomFactorプロパティが最大値(400%)の場合、フォームサイズを大きくしても、フォーム内のコントロールはズームされません。

    C1ZoomクラスのZoomFactorプロパティが最小値(100%)の場合、フォームサイズを小さくしても、フォーム内のコントロールはズームされません。

    フォームのリサイズ時にフォームの高さと幅の変更率が異なる場合、フォーム内のコントロールは変更率が小さ

    い方に合わせてズームされます。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.AllowResizeByZoom = TrueC1Zoom1.InnerPanelLayoutMode = C1.Win.C1TouchToolKit.InnerPanelLayoutMode.MiddleCenter

    C# コードの書き方

    C#

    C1Zoom1.AllowResizeByZoom = true;C1Zoom1.InnerPanelLayoutMode = C1.Win.C1TouchToolKit.InnerPanelLayoutMode.MiddleCenter;

    ズーム率にあわせてフォームサイズを変更するズーム率にあわせてフォームサイズを変更する

    AllowResizeByZoomプロパティにTrueを設定すると、フォーム内のコントロールをズームしたときにズーム率に合わせて

      TouchToolKit for WinForms

    19 Copyright © GrapeCity, Inc. All rights reserved.         

  • フォームのサイズが変更されます。

    なお、この機能を有効にするには、InnerPanelLayoutModeプロパティにInnerPanelLayoutMode.MiddleCenterを設定する必要があります。

    注意注意

    この機能はタッチ操作でフォーム内のコントロールをズームした場合に有効です。ズーム率をコードで変更した

    場合には機能しません。

    フォームのサイズが画面サイズと同じ場合や、最大サイズに達している場合には、拡大ズームしてもフォームサ

    イズは変更されません。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.AllowResizeByZoom = TrueC1Zoom1.InnerPanelLayoutMode = C1.Win.C1TouchToolKit.InnerPanelLayoutMode.MiddleCenter

    C# コードの書き方

    C#

    C1Zoom1.AllowResizeByZoom = true;C1Zoom1.InnerPanelLayoutMode = C1.Win.C1TouchToolKit.InnerPanelLayoutMode.MiddleCenter;

    フルスクリーンモードフルスクリーンモード

    ここでは、アプリケーションを画面全体に表示するフルスクリーンモードについて説明します。

    フルスクリーン表示フルスクリーン表示

    アプリケーションを画面全体に拡大するには、フルスクリーンモードを使用します。フルスクリーンモードを使用すると、アプリ

    ケーションの表示領域を最大化してユーザーが誤ってタイトルバーやタスクバーを操作することを防ぐことができます。

    C1Zoom.FullScreenModeプロパティをFullScreenにすると、フォームを画面全体に表示します。FullScreenWithTaskBarにすると、Windowsタスクバー領域を除いた画面全体に表示します。

    次のコードは、フォームを画面全体に表示します。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.FullScreenMode = C1.Win.C1TouchToolKit.FullScreenMode.FullScreen

    C# コードの書き方

    C#

    C1Zoom1.FullScreenMode = C1.Win.C1TouchToolKit.FullScreenMode.FullScreen;

    注意注意: MDI子フォームではフルスクリーンモードは使用できません。

    TouchToolKit for WinForms  

    20 Copyright © GrapeCity, Inc. All rights reserved.         

  • ズームのイベントズームのイベント

    C1Zoomコンポーネントでは、次のイベントを使用してズーム時の処理をカスタマイズできます。

    名前 説明

    ControlAutoShowing C1Zoomコンポーネントがターゲットコントロールの表示を開始する前に発生します。

    ControlBoundsZooming C1Zoomコンポーネントがターゲットコントロールの境界のズームを開始する前に発生します。

    ControlFontZooming C1Zoomコンポーネントがターゲットコントロールのフォントのズームを開始する前に発生します。

    ManipulationStarting マニピュレーションプロセッサが最初に作成されたときに発生します。

    ZoomFactorChanged ZoomFactorプロパティが変更されたときに発生します。

    コントロールが自動スクロールされるときのイベントコントロールが自動スクロールされるときのイベント

    C1Zoom.ControlAutoShowingイベントを使用すると、C1Zoomコンポーネントによってフォームが自動的にスクロールされる際に、コントロールの情報やスクロールが発生した理由によってこれをキャンセルするかどうかを制御できます。たとえば、コ

    ントロールが一定サイズ表示されている場合は自動スクロールしない、といった処理が可能です。

    Visual Basic コードの書き方

    Visual Basic

    Imports C1.Win.C1TouchToolKit

    Private Sub C1Zoom1_ControlAutoShowing(sender As System.Object, e As ControlAutoShowingEventArgs) Handles C1Zoom1.ControlAutoShowing ' コントロールがすべて表示されているときは自動スクロールをしません。 If C1Zoom1.GetDisplayRectangle(e.Showingcontrol).Size = e.ShowingControl.Size Then e.Cancel = True End If

    ' コントロールの一部が表示されているときは自動スクロールをしません。 If C1Zoom1.GetDisplayRectangle(e.ShowingControl).IsEmpty Then e.Cancel = True End If

    ' コントロールの高さが30ピクセル以上表示されているときは自動スクロールをしません。 If C1Zoom1.GetDisplayRectangle(e.ShowingControl).Size.Height > 30 Then e.Cancel = True End IfEnd Sub

    C# コードの書き方

    C#

    using C1.Win.C1TouchToolKit;

    private void gcZoom1_ControlAutoShowing(object sender, ControlAutoShowingEventArgs e){ // コントロールがすべて表示されているときは自動スクロールをしません。

      TouchToolKit for WinForms

    21 Copyright © GrapeCity, Inc. All rights reserved.         

  • if (gcZoom1.GetDisplayRectangle(e.ShowingControl).Size == e.ShowingControl.Size) { e.Cancel = true; }

    // コントロールの一部が表示されているときは自動スクロールをしません。 if (!gcZoom1.GetDisplayRectangle(this.button1).IsEmpty) { e.Cancel = true; }

    // コントロールの高さが30ピクセル以上表示されているときは自動スクロールをしません。 if (gcZoom1.GetDisplayRectangle(this.button1).Size.Height > 30) { e.Cancel = true; }}

    ズームの検出ズームの検出

    C1Zoom.ControlBoundsZoomingイベントを使用して、コントロールのズームを検出できます。また、C1Zoom.ControlFontZoomingイベントを使用してフォントのズームを検出できます。

    通常、ユーザー定義のズームの動作を複数のプロジェクト間で共有するにはZoomPolicyが適しています。詳細は「ズームとコントロール」を参照してください。

    C1Zoom.ControlBoundsZoomingイベントでは、組み込みのズーム処理をキャンセルしてユーザー定義のコードをコントロールに対して実行できます。

    Visual Basic コードの書き方

    Visual Basic

    Imports C1.Win.C1TouchToolKit

    Private Sub C1Zoom1_ControlBoundsZooming(sender As System.Object, e As ControlBoundsZoomingEventArgs) Handles C1Zoom1.ControlBoundsZooming If e.TargetControl Is Button1 Then e.Handled = True End IfEnd Sub

    C# コードの書き方

    C#

    using C1.Win.C1TouchToolKit;

    private void gcZoom1_ControlBoundsZooming(object sender, ControlBoundsZoomingEventArgs e){ if (e.TargetControl == button1) { e.Handled = true; }}

    TouchToolKit for WinForms  

    22 Copyright © GrapeCity, Inc. All rights reserved.         

  • C1Zoom.ControlFontZoomingイベントでは組み込みのフォントズームをキャンセルしてユーザー定義のコードを実装できます。このイベントで対象のコントロールのフォントをカスタマイズする場合、対象のコントロールのフォントに明示的にフォントが

    指定されている必要があります。フォントが指定されていない場合、親コントロールのフォントが使用されます。ま

    た、C1Zoom.InnerPanelプロパティに一致するコントロールは除外される必要があります。

    Visual Basic コードの書き方

    Visual Basic

    Imports C1.Win.C1TouchToolKit

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Button1.Font = New Font("MS UI Gothic", 9.0F)End Sub

    Private Sub C1Zoom1_ControlFontZooming(sender As System.Object, e As ControlFontZoomingEventArgs) Handles C1Zoom1.ControlFontZooming If e.TargetControl Is Button1 Then e.Handled = True End IfEnd Sub

    C# コードの書き方

    C#

    using C1.Win.C1TouchToolKit;

    private void Form1_Load(new Font("MS UI Gothic" , 9.0f);}

    private void gcZoom1_ControlFontZooming(object sender, ControlFontZoomingEventArgs e){ if (e.TargetControl == button1) { e.Handled = true; }}

    タッチ操作が開始されたときのイベントタッチ操作が開始されたときのイベント

    C1Zoom.ManipulationStartingイベントを使用すると、タッチ操作でズームやスクロール(パン)が開始されたときに、この処理を実行するかどうかを変更できます。たとえば、フォーム画面のスクロールよりもListBoxコントロールのスクロールを優先したい場合、次のようにコーディングします。

    Visual Basic コードの書き方

    Visual Basic

    Imports C1.Win.C1TouchToolKit

      TouchToolKit for WinForms

    23 Copyright © GrapeCity, Inc. All rights reserved.         

  • Private Sub C1Zoom1_ManipulationStarting(sender As System.Object, e As ZoomManipulationStartingEventArgs) Handles C1Zoom1.ManipulationStarting If TypeOf e.TargetControl Is TextBox AndAlso DirectCast(e.TargetControl, TextBox).Text.Length > 0 Then e.Mode = ZoomManipulationModes.Zoom Else e.Mode = ZoomManipulationModes.All End IfEnd Sub

    C# コードの書き方

    C#

    using C1.Win.C1TouchToolKit;

    private void gcZoom1_ManipulationStarting(object sender, ZoomManipulationStartingEventArgs e){ if (e.TargetControl is ListBox) { e.Mode = ZoomManipulationModes.Zoom; } else { e.Mode = ZoomManipulationModes.All; }}

    TextBoxコントロールに文字列が存在する場合だけ、フォームのスクロールよりもTextBoxコントロール上の操作を優先する、といった細かな組み合わせも実装できます。

    Visual Basic コードの書き方

    Visual Basic

    Private Sub C1Zoom1_ManipulationStarting(sender As System.Object, e As C1.Win.C1TouchToolKit.ZoomManipulationStartingEventArgs) Handles C1Zoom1.ManipulationStarting If TypeOf e.TargetControl Is TextBox AndAlso DirectCast(e.TargetControl, TextBox).Text.Length > 0 Then e.Mode = C1.Win.C1TouchToolKit.ZoomManipulationModes.Zoom Else e.Mode = C1.Win.C1TouchToolKit.ZoomManipulationModes.All End IfEnd Sub

    C# コードの書き方

    C#

    private voidz gcZoom1_ManipulationStarting(object sender,

    TouchToolKit for WinForms  

    24 Copyright © GrapeCity, Inc. All rights reserved.         

  • C1.Win.C1TouchToolKit.ZoomManipulationStartingEventArgs e){ if (e.TargetControl is TextBox && ((TextBox)e.TargetControl).Text.Length > 0) { e.Mode = C1.Win.C1TouchToolKit.ZoomManipulationModes.Zoom; } else { e.Mode = C1.Win.C1TouchToolKit.ZoomManipulationModes.All; }}

    ズーム率が変わった時のイベントズーム率が変わった時のイベント

    C1Zoom.ZoomFactorChangedイベントを使用すると、ズーム率が変わったときに処理を実行できます。たとえば、次のコードように現在のズーム率をタイトルバーに表示できます。

    Visual Basic コードの書き方

    Visual Basic

    Private Sub C1Zoom1_ZoomFactorChanged(sender As System.Object, e As System.EventArgs) Handles C1Zoom1.ZoomFactorChanged Me.Text = String.Format("{0:P}", C1Zoom1.ZoomFactor)End Sub

    C# コードの書き方

    C#

    private void gcZoom1_ZoomFactorChanged(object sender, EventArgs e){ this.Text = string.Format("{0:P}", gcZoom1.ZoomFactor);}

    フォームとの互換性フォームとの互換性

    C1Zoomコンポーネントはフォーム上のコントロールをC1Zoomコンポーネントが持つパネルに移動し、そのパネルとコントロールの大きさを変えることでズームを実現します。このため、フォームのいくつかの機能は以下のように変更が必要になりま

    す。

    Form.Captureプロパティプロパティ

    System.Windows.Forms.Formクラスの Captureプロパティは、C1Zoomコンポーネントを配置したフォームでは使用できなくなります。代わりにC1Zoom.InnerPanelプロパティが参照するPanelオブジェクトのCaptureプロパティを使用します。

    Form.Controlsプロパティプロパティ

    System.Windows.Forms.Formクラスの Controlsプロパティは、C1Zoomコンポーネントを配置したフォームでは使用できなくなります。代わりにC1Zoom.ControlsプロパティまたはC1Zoom.InnerPanelプロパティが参照するPanelオブジェクトのControlsプロパティを使用します。

      TouchToolKit for WinForms

    25 Copyright © GrapeCity, Inc. All rights reserved.         

    http://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.aspxhttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.capture.aspxhttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.aspxhttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.controls.aspx

  • コントロールの追加コントロールの追加

    実行時にコーディングでフォームにコントロールを追加するには、以下のようにコントロールを追加するコード

    をC1Zoom.BeginAddControlsメソッドとC1Zoom.EndAddControlsメソッドで囲ってください。

    Visual Basic コードの書き方

    Visual Basic

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click C1Zoom1.BeginAddControls()

    Dim Button2 As New Button() C1Zoom1.Controls.Add(Button2) Button2.Text = "Button2" Button2.Visible = True Button2.Left = Button1.Left Button2.Top = Button1.Top + Button1.Height + 10

    C1Zoom1.EndAddControls()End Sub

    C# コードの書き方

    C#

    private void button1_Click(object sender, EventArgs e){ gcZoom1.BeginAddControls();

    Button button2 = new Button(); gcZoom1.Controls.Add(button2); button2.Text = "Button2"; button2.Visible = true; button2.Left = button1.Left; button2.Top = button1.Top + button1.Height + 10;

    gcZoom1.EndAddControls();}

    C1ZoomPanelコントロールコントロールC1ZoomPanel コントロールを使うと、フォームの一部だけをタッチによるズームに対応できます。画面の一部だけをズーム可能にしたい場合や、画面のパーツごとに設定を分けたい場合に便利です。C1ZoomPanel コントロールは標準のPanel コントロールと同じように、パネルとして使用できます。

    ここでは、C1ZoomPanel コントロールの利用方法について、以下の項目に分けて解説しています。

    基本的な使い方基本的な使い方

    パネルとの互換性パネルとの互換性

    なお、C1ZoomPanel コントロールでは、コントロールバー、パンウィンドウ、フルスクリーンモードおよびアスペクト比の維持は使用できません。また、C1ZoomPanelコントロールとC1Zoomコンポーネント、C1ApplicationZoom コンポーネントは併用できません。

    TouchToolKit for WinForms  

    26 Copyright © GrapeCity, Inc. All rights reserved.         

  • また、以下の機能はC1Zoom コンポーネントと共通です。「C1Zoomコンポーネントコンポーネント」の以下の解説を参照してください。

    ズームズーム

    スクロールスクロール

    ズームのイベントズームのイベント

    基本的な使い方基本的な使い方

    ここでは、C1ZoomPanel コントロールの基本的な使い方について解説します。

    設定方法設定方法

    次の例では、メニューバー、ツールバーおよびステータスバーを持つエクスプローラ形式のフォームにおける、ツリービューとリスト

    ビューだけをタッチ操作でズーム可能にします。

    なお、Visual Studioが提供するテンプレートの制約により、ここではVisual Basicでの用法のみを説明します。

    1. Visual Studioを起動し、新規にVisual Basicの「Windowsフォームアプリケーション」プロジェクトを作成します。

    2. [プロジェクト]メニューから[新しい項目の追加]を選択し、「エクスプローラー フォーム」をExplorer1.vbという名前で追加します。

      TouchToolKit for WinForms

    27 Copyright © GrapeCity, Inc. All rights reserved.         

  • 3. [プロジェクト]メニューから[プロジェクト名のプロパティ]を選択し、「スタートアップ フォーム」をExplorer1に変更します。

    4. Explorer1にツールボックスからC1ZoomPanelコンポーネント(C1ZoomPanel1)を適当な場所に追加します。

    TouchToolKit for WinForms  

    28 Copyright © GrapeCity, Inc. All rights reserved.         

  • 5. [表示]メニューから[ドキュメント アウトライン]を選択し、「ドキュメントアウトライン」ウィンドウを表示します。6. ドキュメントアウトライン上でC1ZoomPanel1を選択し、ToolStripContainer.ContentPanelとSplitContainerの中間に移動しま

    す。

    7. ドキュメントアウトライン上でSplitContainerをC1ZoomPanel1にドラッグします。

      TouchToolKit for WinForms

    29 Copyright © GrapeCity, Inc. All rights reserved.         

  • 8. ドキュメントアウトライン上でC1ZoomPanel1を選択し、フォーム上のC1ZoomPanel1のスマートタグから「親コンテナーにドッキングする」を実行します。

    9. プロジェクトを実行すると、ツリービューとリストビューの部分がズームされることが確認できます。

    パネルとの互換性パネルとの互換性

    C1ZoomPanel コントロールはPanelコントロール上のコントロールをC1ZoomPanel コンポーネントが内部に持つパネルに移動し、そのパネルとコントロールの大きさを変えることでズームを実現します。このため、元のPanel コントロールの以下の機能は変更が必要になります。

    コントロールの追加コントロールの追加

    実行時にコーディングでフォームにコントロールを追加するには、コントロールを追加するコードをC1ZoomPanelクラスのBeginAddControlsメソッドとEndAddControlsメソッドで囲います。そしてコントロールを追加するには、C1ZoomPanel.Controlsプロパティの代わりにInnerControlsプロパティを使用します。

    1. フォームにC1ZoomPanel コントロール(C1ZoomPanel1)を追加します。2. C1ZoomPanel1 にButtonコントロール(Button1)を追加します。3. Button1.Click イベントに以下のコードを追加します。

    Visual Basic コードの書き方

    Visual Basic

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

    C1ZoomPanel1.BeginAddControls()

    TouchToolKit for WinForms  

    30 Copyright © GrapeCity, Inc. All rights reserved.         

  • Dim button2 As New Button() C1ZoomPanel1.InnerControls.Add(button2)

    button2.Text = "Button2" button2.Visible = True button2.Left = Button1.Left button2.Top = Button1.Top + Button1.Height + 10

    C1ZoomPanel1.EndAddControls()End Sub

    C# コードの書き方

    C#

    private void button1_Click(object sender, EventArgs e){ C1ZoomPanel1.BeginAddControls();

    Button button2 = new Button(); C1ZoomPanel1.InnerControls.Add(button2); button2.Text = "Button2"; button2.Visible = true; button2.Left = button1.Left; button2.Top = button1.Top + button1.Height + 10;

    C1ZoomPanel1.EndAddControls();}

    4. プロジェクトを実行し、C1ZoomPanel をズームした状態でButton1をクリックし、Button2が適切な位置と大きさで追加されることを確認します。

    C1ApplicationZoomコンポーネントコンポーネントC1ApplicationZoom コンポーネントを使用すると、プロジェクトに含まれるすべてのフォームをタッチによるズーム操作に対応できます。C1Zoomコンポーネントを使用する場合、すべてのフォームをズーム可能にするにはフォームの数だけC1Zoomコンポーネントを配置する必要がありますが、C1ApplicationZoom コンポーネントを使用すると、この作業は最初の一度だけですみます。

    ここでは、プロジェクトに含まれるすべてのフォームをズーム可能にする方法について、以下の項目に分けて解説しています。

    基本的な使い方基本的な使い方

    特定のフォームの設定特定のフォームの設定

    ひとつのフォームのみズーム操作に対応する方法については「C1Zoom コンポーネントコンポーネント」を参照してください。

    基本的な使い方基本的な使い方

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

    概要概要

    C1ApplicationZoomコンポーネントをスタートアップフォームに配置すると、プロジェクトに含まれるすべてのフォームをタッチ

      TouchToolKit for WinForms

    31 Copyright © GrapeCity, Inc. All rights reserved.         

  • によるズーム操作に対応できます。

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

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

    を使うことができます。

    注意注意:

    C1ApplicationZoomコンポーネントではパンウィンドウは使用できません。MessageBoxやInputBox、コモンダイアログはズームできません。

    関連付けられた関連付けられた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) {

    TouchToolKit for WinForms  

    32 Copyright © GrapeCity, Inc. All rights reserved.         

    http://msdn.microsoft.com/ja-jp/library/6y6135ed.aspxhttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.application.openforms.aspx

  • 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

      TouchToolKit for WinForms

    33 Copyright © GrapeCity, Inc. All rights reserved.         

  • End IfEnd 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 IfEnd 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を表示します。

    注意注意

    ユーザーが現在操作しているフォームにアクセスするには、 System.Windows.Forms.Form クラスの

    TouchToolKit for WinForms  

    34 Copyright © GrapeCity, Inc. All rights reserved.         

    http://msdn.microsoft.com/ja-jp/library/w4bcxb43.aspx

  • ActiveForm プロパティを使用します。ユーザーが現在操作しているフォームのC1Zoomコンポーネントは、sender引数で参照できます。C1Zoom コンポーネントのイベントはC1ApplicationZoom.OnC1ZoomDetached イベントで削除(解放)する必要があります。

    特定のフォームの設定特定のフォームの設定

    ここでは、C1ApplicationZoomコンポーネントが配置されたプロジェクトにおいて、特定のフォームを設定する方法について解説します。

    特定のフォームをズームの対象外にする特定のフォームをズームの対象外にする

    特定のフォームをズームの対象外にするには、C1ApplicationZoom コンポーネントにフォームが関連付けられるタイミングでフォームの型に応じてキャンセルします。

    以下のコードはプロジェクトに2つのフォーム(Form1、Form2)が存在するとき、Form1に配置したC1ApplicationZoom コンポーネントからForm2を除外します。

    Visual Basic コードの書き方

    Visual Basic

    Imports C1.Win.C1TouchToolKit

    Private Sub C1ApplicationZoom1_C1ZoomAttaching(sender As System.Object, e As C1ZoomAttachingEventArgs) Handles C1ApplicationZoom1.C1ZoomAttaching If TypeOf e.Form Is Form2 Then ' Form2はズームの対象外になります e.Cancel = True End IfEnd Sub

    C# コードの書き方

    C#

    using C1.Win.C1TouchToolKit;

    private void gcApplicationZoom1_Attaching(object sender, C1ZoomAttachedEventArgs e){ if(e.Form is Form2) { // Form2はズームの対象外になります e.Cancel = true; }}

    特定のフォームの設定を変更する特定のフォームの設定を変更する

    次のコードは、プロジェクトに2つのフォーム(Form1、Form2)が存在するとき、Form2フォームだけズームの最大値を300%に変更します。

    Visual Basic コードの書き方

      TouchToolKit for WinForms

    35 Copyright © GrapeCity, Inc. All rights reserved.         

    http://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.activeform.aspx

  • 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 ' Form2だけズームの最大値を300%にします。 e.C1Zoom.MaxZoomFactor = 3.0F End IfEnd Sub

    C# コードの書き方

    C#

    using C1.Win.C1TouchToolKit;

    private void ApplicationZoom1_C1ZoomAttaching(object sender, C1ZoomAttachedEventArgs e){ if(e.Form is Form2) { // Form2だけズームの最大値を300%にします。 e.C1Zoom.MaxZoomFactor = 3.0f; }}

    C1ZoomCommandProviderコンポーネントコンポーネントC1ZoomCommandProviderコンポーネントとユーザーコントロールを使用して、タッチ操作を視覚化するコントロールバーを作成することが可能です。C1ZoomCommandProvider コンポーネントは、ユーザーコントロール上のコントロールに拡大、縮小、スクロールといったタッチ操作のコマンドを付与します。

    ここでは、C1ZoomCommandProvider コンポーネントの利用方法について、以下の項目に分けて解説します。

    基本的な使い方基本的な使い方

    コントロールバーコントロールバー

    注意注意: C1ZoomCommandProvider コンポーネントはユーザーコントロール以外では使用できません。また、ユーザーコントロールを編集するデザイン画面でのみ、ツールボックスに表示されます。

    基本的な使い方基本的な使い方

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

    コントロールバーコントロールバー

    C1Zoom コンポーネントが配置されているフォームでは、ズームやスクロールの操作をエンドユーザーの目に触れる形で提供するコントロールバーを表示することができます。コントロールバーは、ユーザーコントロールで作成さ

    れ、C1Zoom.ControlBars プロパティが参照するControlBar オブジェクトのコレクションに追加することで定義されます。

    ユーザーコントロールに配置されたボタン等に拡大、縮小、スクロールといったタッチ操作のコマンドを設定するに

    は、C1ZoomCommandProvider コンポーネントを使用します。

    TouchToolKit for WinForms  

    36 Copyright © GrapeCity, Inc. All rights reserved.         

  • コントロールバーの詳細な作成方法については「コントロールバーコントロールバー」を参照してください。

    組み込みのアクション組み込みのアクション

    C1ZoomCommandProvider コンポーネントでは、次の組み込みのアクションを提供します。

    定義 説明

    None どのコマンドも実行しません(デフォルト値)。

    ZoomIn このコマンドを実行すると、10% ズームインします。現在のズーム率が最大ズーム率に達している場合は何もしません。

    ZoomOut このコマンドを実行すると、10% ズームアウトします。現在のズーム率が最小ズーム率に達している場合は何もしません。

    ResetZoom ズーム率を100%にします。

    ScrollLeft フォームコンテンツの幅の 1/3 だけ左にスクロールします。フォームがスクロールの終端に達している場合は何もしません。

    ScrollRight フォームコンテンツの幅の 1/3 だけ右にスクロールします。フォームがスクロールの終端に達している場合は何もしません。

    ScrollUp フォームコンテンツの高さの 1/3 だけ上にスクロールします。フォームがスクロールの終端に達している場合は何もしません。

    ScrollDown フォームコンテンツの高さの 1/3 だけ下にスクロールします。フォームがスクロールの終端に達している場合は何もしません。

    SwitchFullScreen フォームをフルスクリーンに変更します。フォームがすでにフルスクリーンになっている場合は、元に戻します。

    ShowOrHidePreviewWindow パンウィンドウを表示します。パンウィンドウがすでに表示されている場合は、パンウィンドウを閉じます。

    SelectNextControl アクティブなコントロールを次に移動します。

      TouchToolKit for WinForms

    37 Copyright © GrapeCity, Inc. All rights reserved.         

  • SelectPreviousControl アクティブなコントロールを前に移動します。

    ユーザー定義のアクションユーザー定義のアクション

    C1ZoomCommandProvider.OwnerForm プロパティを通じて、コントロールバーが表示されるフォームにアクセスできます。次のコードはフォームを閉じる処理です。

    Visual Basic コードの書き方

    Visual Basic

    C1ZoomCommandProvider1.OwnerForm.Close()

    C# コードの書き方

    C#

    C1ZoomCommandProvider1.OwnerForm.Close();

    C1ZoomCommandProvider.OwnerC1Zoom プロパティを通じて、コントロールバーが表示されるフォーム上のC1Zoom コンポーネントにアクセスできます。次のコードは、ズームしたフォームで右下に向かってスクロールします。

    Visual Basic コードの書き方

    Visual Basic

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim currentLocation As Point = C1ZoomCommandProvider1.OwnerC1Zoom.ScrollLocation currentLocation.X -= 100 currentLocation.Y -= 100 C1ZoomCommandProvider1.OwnerC1Zoom.ScrollLocation = currentLocationEnd Sub

    C# コードの書き方

    C#

    private void button1_Click(object sender, EventArgs e){ Point currentLocation = C1ZoomCommandProvider1.OwnerC1Zoom.ScrollLocation; currentLocation.X -= 100; currentLocation.Y -= 100; C1ZoomCommandProvider1.OwnerC1Zoom.ScrollLocation = currentLocation;}

    コントロールバーコントロールバー

    コントロールバーはズームやスクロールの操作をエンドユーザーの目に触れる形で提供します。コントロールバー

    はC1Zoomコンポーネントのズームから除外されるため、ユーザーの操作に関わらず同じ大きさを保つことができます。

    コントロールバーの設定コントロールバーの設定

    以下の手順でタッチ可能なフォームに対し、コントロールバーを設定します。

    1. プロジェクトにユーザーコントロールを追加します。(UserControl1)

    TouchToolKit for WinForms  

    38 Copyright © GrapeCity, Inc. All rights reserved.         

  • 2. ユーザーコントロールにコマンドとして使用するButton コントロールを2つ追加します。(Button1、Button2)3. ツールボックスからユーザーコントロールにC1ZoomCommandProvider コンポーネントを追加します。4. Buttonコントロールのスマートタグアンカーをクリックし、C1ZoomCommands の一覧から「ZoomIn」を選択します。同

    様に、もう1つのButtonコントロールに同じ手順で「ZoomOut」を選択します。5. プロジェクトをビルドします。6. フォームにC1Zoom コンポーネントを追加します。7. フォームに、作成したUserControl1を追加します。8. C1Zoomコンポーネントを選択し、プロパティウィンドウからC1Zoom.ControlBarsプロパティを開きます。9. ControlBarコレクションエディターで〈追加〉をクリックし、Contentプロパティで

    「WindowsFormsApplication1.UserControl1」を選択します。10. フォームを実行し、Button1 とButton2 の操作でフォームをズームできることを確認します。

    表示位置表示位置

    ControlBar.PositionMode プロパティを使って、コントロールバーの表示位置を設定できます。

    ControlBar.PositionModeプロパティにPositionMode.Dockを設定している場合、コントロールバーは親フォームにドッキングされます。親フォームがリサイズされた場合、コントロールバーの表示位置は親フォームのサイズに合わせて自動調整され

    ます。

    また、ControlBar.DockPositionプロパティで、ドッキングされたコントロールバーの表示位置を指定できます。

    次のコードでは、ドッキングされたコントロールバーを親フォームの左下に表示します。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.ControlBars(0).PositionMode = C1.Win.C1TouchToolKit.PositionMode.DockC1Zoom1.ControlBars(0).DockPosition = ContentAlignment.BottomLeft

    C# コードの書き方

    C#

    C1Zoom1.ControlBars[0].PositionMode = C1.Win.C1TouchToolKit.PositionMode.Dock;C1Zoom1.ControlBars[0].DockPosition = ContentAlignment.BottomLeft;

    ControlBar.Marginプロパティを使用すると、親フォームの罫線とコントロールバーの間にスペースを入れることができます。

    Visual Basic コードの書き方

      TouchToolKit for WinForms

    39 Copyright © GrapeCity, Inc. All rights reserved.         

  • Visual Basic

    C1Zoom1.ControlBars(0).Margin = New Padding(20, 20, 20, 20)

    C# コードの書き方

    C#

    C1Zoom1.ControlBars[0].Margin = new Padding(20, 20, 20, 20);

    ControlBar.PositionModeプロパティにPositionMode.Floatingを設定している場合、タッチ操作またはコードでコントロールバーの表示位置を変更できます。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.ControlBars(0).PositionMode = C1.Win.C1TouchToolKit.PositionMode.Floating

    C# コードの書き方

    C#

    C1Zoom1.ControlBars[0].PositionMode = C1.Win.C1TouchToolKit.PositionMode.Floating;

    ControlBar.PositionModeプロパティにPositionMode.Fixedを設定している場合、コードでコントロールバーの表示位置を変更できます。この場合、コントロールバーの表示位置をタッチ操作で変更することはできません。

    Visual Basic コードの書き方

    Visual Basic

    C1Zoom1.ControlBars(0).PositionMode = C1.Win.C1TouchToolKit.PositionMode.Fixed

    C# コードの書き方

    C#

    C1Zoom1.ControlBars[0].PositionMode = C1.Win.C1TouchToolKit.PositionMode.Fixed;

    半透明表示半透明表示

    ControlBar.Opacityプロパティを使って、コントロールバーを対象のフォーム上で半透明に表示できます。既定値は50%の透

    TouchToolKit for WinForms  

    40 Copyright © GrapeCity, Inc. All rights reserved.         

  • 過です。半透明の場合でも、背後にあるフォームのコントロールを操作することはできません。

    20% 50%(既定) 100%

    背景色の透過背景色の透過

    ControlBar.TransparentBackgroundプロパティをTrueに設定し、ControlBar.TransparencyKeyプロパティに透過したい色を設定すると、コントロールバーの指定した色を透明できます。このとき、透明の部分を通して背後にあるフォームのコント

    ロールを操作することはできません。

    C1MagnifyコンポーネントコンポーネントC1Magnifyコンポーネントを使用すると、ユーザーがタッチ操作を行うときに指先に小さな拡大鏡を表示してユーザーの操作を補助できます。たとえばタッチ操作でTextBoxコントロールの文字列を選択するには、文字そのものを指でなぞる必要があるため、選択中は文字が指で隠れてしまいます。C1Magnifyコンポーネントで拡大鏡を指先に表示すると、ユーザーは画面のどの部分を操作しているのか拡大鏡を通して見ることができるようになります。

    既定の設定では、ユーザーが指を画面に一定時間置くと表示されます。

    ここでは、C1Magnifyコンポーネントの使用方法について以下の項目に分けて解説します。

    基本的な使い方基本的な使い方

    拡大鏡の外観を変更する拡大鏡の外観を変更する

    拡大鏡とイベント拡大鏡とイベント

    基本的な使い方基本的な使い方

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

    拡大鏡を有効にする拡大鏡を有効にする

      TouchToolKit for WinForms

    41 Copyright © GrapeCity, Inc. All rights reserved.         

  • 以下の手順で、拡大鏡を有効にできます。

    1. TextBoxコントロール(TextBox1)をフォームに追加します。2. C1Magnifyコンポーネント(C1Magnify1)をフォームに追加します。3. TextBox1を選択し、プロパティウィンドウから「C1Magnify1のEnableMagnifier」プロパティをTrueに設定します。4. プロジェクトを実行し、TextBoxコントロール上で数秒間指を置いたままにすると、円形の拡大鏡が表示されます。指を

    画面に置いたまま動かすと、指の動きに合わせて拡大鏡も移動します。

    マウスカーソルの表示マウスカーソルの表示

    C1Magnify.ShowCursorプロパティをTrueに設定すると、拡大鏡内にマウスカーソルを表示にできます。既定値はFalseです。

    False(既定) True

    次のサンプルコードは拡大鏡内にマウスカーソルを表示する例です。

    Visual Basic コードの書き方

    Visual Basic

    C1Magnify1.ShowCursor = True

    C# コードの書き方

    C#

    C1Magnify1.ShowCursor = true;

    拡大率の変更拡大率の変更

    拡大鏡の拡大率はC1Magnify.ZoomFactorプロパティで変更します。既定値は200%です。

    200%(既定値) 300%

    TouchToolKit for WinForms  

    42 Copyright © GrapeCity, Inc. All rights reserved.         

  • 次のサンプルコードは、拡大鏡の拡大率を400%に設定します。

    Visual Basic コードの書き方

    Visual Basic

    C1Magnify1.ZoomFactor = 4.0F

    C# コードの書き方

    C#

    C1Magnify1.ZoomFactor = 4.0f;

    表示時間表示時間

    拡大鏡がポップアップされるまでの時間を設定するには、C1Magnify.PopupDelayプロパティを使用します。

    レールレール

    C1Magnify.IsHorizontalRailEnabledプロパティまたはC1Magnify.IsVerticalRailEnabledプロパティを使用して、はじめに指を動かした方向に拡大鏡の移動先を固定するかどうかを設定できます。

    拡大鏡の外観を変更する拡大鏡の外観を変更する

    拡大鏡は、以下のような外観を変更することができます。

    シェイプシェイプ

    C1Magnify.Shapeプロパティを使用すると、拡大鏡の形を円形、四角形または角丸四角形のいずれかに設定できます。既定値は円形です。

    Circle(円形) Rectangle(四角形) RoundedRectangle(角丸四角形)

    サイズサイズ

      TouchToolKit for WinForms

    43 Copyright © GrapeCity, Inc. All rights reserved.         

  • C1Magnify.Sizeプロパティを使用して、拡大鏡のサイズを設定できます。既定値は100×100です。

    100×100 150×150 150×100

    境界線の太さ境界線の太さ

    C1Magnify.BorderWidthプロパティを使用して、拡大鏡の境界線の太さを設定できます。既定値は5ピクセルです。

    5ピクセル 10ピクセル 1ピクセル

    境界線の背景境界線の背景

    C1Maginifer.BorderBackgroundModeプロパティを使用して、拡大鏡の境界線の背景を設定できます。既定値はBackGround.Lightです。BackGround.Customを設定した場合、C1Magnify.BorderBackgroundプロパティに背景イメージを指定します。

    Light Dark Custom

    サンプルコードサンプルコード

    次のコードは既定の円形の拡大鏡を四角形に変更し、またサイズや境界線の太さも変更します。

    Visual Basic コードの書き方

    Visual Basic

    C1Magnify1.BorderWidth = 3

    TouchToolKit for WinForms  

    44 Copyright © GrapeCity, Inc. All rights reserved.         

  • C1Magnify1.Shape = C1.Win.C1TouchToolKit.MagnifyShape.RectangleC1Magnify1.Size = New Size(300, 100)

    C# コードの書き方

    C#

    C1Magnify1.BorderWidth = 3;C1Magnify1.Shape = C1.Win.C1TouchToolKit.MagnifyShape.Rectangle;C1Magnify1.Size = new Size(300, 100);

    拡大鏡とイベント拡大鏡とイベント

    拡大鏡の動作に関連したイベントについて解説します。

    対象のコントロールに応じた拡大鏡の設定対象のコントロールに応じた拡大鏡の設定

    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 IfEnd Sub

    C# コードの書き方

    C#

      TouchToolKit for WinForms

    45 Copyright © GrapeCity, Inc. All rights reserved.         

  • 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

    TouchToolKit for WinForms  

    46 Copyright © GrapeCity, Inc. All rights reserved.         

  • End Sub

    C# コードの書き方

    C#

    using C1.Win.C1TouchToolKit;

    private void C1Magnify1_Closed(ob