SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

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

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

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

 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イベントも発生する点に注意してください。

次のページ
他のコンポーネントを組み合わせる

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
顧客と開発者の生産性を格段に向上させる、業務システムの画面UI連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9826 2016/12/02 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング