Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

MultiTouchで既存アプリケーションをタッチ対応にしてみよう

顧客と開発者の生産性を格段に向上させる、業務システムの画面UI 第4回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/12/02 14:00

目次

タッチに対応したイベントを設定する

 タッチ操作に応じたイベントを受け取ってプログラム側で処理を行う方法を紹介します。

 MultiTouchを利用することで受け取れるイベントは、UWPやWindows 8のストアアプリと似ており、左記の開発経験があれば、違和感なく利用できる点も.NET開発者にとっては嬉しいポイントです。

GcTouchEventProvider

 GcTouchEventProviderを使用すると、アプリケーションにタッチ操作によるイベントを発生させることができます。

 発生させることができるイベントは、ダブルタップ(DoubleTapped)やホールド(Holding)以外にも、タッチ操作開始時の(ManipulationStarted)や操作中の情報を取得できるManipulationDeltaなどもあります。

GcTouchEventProviderの追加方法

 GcTouchEventProviderを追加するには、上記「コントロールの追加」項目に従いGcTouchEventProviderをツールボックスに追加します。

 デザインビューから画面にGcTouchEventProviderをドロップします。

 

 画面に配置したタッチイベントを取得したいコントロールの「GcTouchEventProvider名のEnableTouchEvents」プロパティをTrueに設定します。

EnableTouchEventsをTrueにする
EnableTouchEventsをTrueにする

 画面に追加したGcTouchEventProviderのプロパティウィンドウから、取得したいイベントを設定します。

 今回はタップした際に発生するTappedイベントを設定します。

Tappedイベントを設定する
Tappedイベントを設定する

 Form1.csに、以下のようにイベントハンドラーを記述します。

 動作を確認するためにTappedイベントを取得するButtonコントロールに対して、クリックした際に発生するClickイベントも設定しておきます。

TappedとClickイベントを設定する
private void button1_Click(object sender, EventArgs e)
{
    // クリック時のイベントを記載
    System.Diagnostics.Debug.WriteLine("クリックされました");
}

private void gcTouchEventProvider1_Tapped(object sender, GrapeCity.Win.MultiTouch.TappedEventArgs e)
{
    // タッチ時のイベントを記載
    System.Diagnostics.Debug.WriteLine("タップされました");
}

 プロジェクトを実行すると、マウスでボタンをクリックした際はClickイベントが、指でタップした場合はClickイベントに加えてTappedイベントが発生していることが確認できます。Tappedイベントだけでなく、Clickイベントも発生する点に注意してください。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 西村 誠(ニシムラ マコト)

     Microsoft MVP Windows Platform Development。  Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。  ブログ:眠るシーラカンスと水底のプログラマー  著書:基礎から学ぶ Windows...

バックナンバー

連載:顧客と開発者の生産性を格段に向上させる、業務システムの画面UI

おすすめ記事

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5