SHOEISHA iD

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

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

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

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

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

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

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

 MultiTouchにInputManやPlusPakを組みわせることで、更にタッチ操作に適した画面を作成することが可能になります。

GcIme

 GcImeを使用すると、Windows 8以降に追加されたタッチ対応のソフトウェアの表示非表示をプログラムから制御することができます。

ソフトウェアキーボードを表示する
ソフトウェアキーボードを表示する

GcImeの追加方法

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

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

 TextBoxにフォーカスが当たるとソフトウェアキーボードを表示したい場合、以下のようにTextBoxにEnterとLeaveイベントを設定します。

TappedとClickイベントを設定する
private void textBox1_Enter(object sender, EventArgs e)
{
    // タッチキーボードを表示
    this.gcIme1.ShowTouchKeyboard();
}

private void textBox1_Leave(object sender, EventArgs e)
{
    this.gcIme1.HideTouchKeyboard();
}

InputManと組みわせて、Windows 8以前のOSでもキーボード表示

 InputManと組み合わせることで、Windows 8以前のOSでもタッチしやすいソフトウェアキーボードを提供できます。

GcSoftKeyboard
GcSoftKeyboard

 GcSoftKeyboardの表示は、上記「コントロールの追加」項目に従いGcSoftKeyboardをツールボックスに追加後、以下のようにコードを記述します。

GcSoftKeyboardを表示する
private void textBox1_Enter(object sender, EventArgs e)
{
    // ソフトウェアキーボードを表示する。引数に対象となる入力コントロールを渡す
    this.gcSoftKeyboard1.Show(sender as TextBox);
}

private void textBox1_Leave(object sender, EventArgs e)
{
    this.gcSoftKeyboard1.Hide();
}

タッチ操作時に拡大表示されるコントロール

 InputManのGcComboBoxや、PlusPakのGcColorPickerなどのコントロールはマウス操作時と、タッチ操作時で表示されるドロップダウンメニューのサイズが異なります。タッチ操作を検知し、自動でタッチしやすい拡大されたメニューを表示します。

マウス操作時のメニュー
マウス操作時のメニュー
タッチ操作時は拡大されて表示される
タッチ操作時は拡大されて表示される

まとめ

 MultiTouchを利用することで、既存のWindows Formsアプリケーションにタッチ機能を追加できることをお伝えしました。

 既存アプリケーションがすでにあり、タッチ操作を行う端末での運用を行いたい場合に、新規に新しいプラットフォームで作成するか、既存アプリケーションに今回紹介したような機能を組み込むことで要望を満たせるかは、比較検討する価値があります。

 また、既存アプリケーションがない場合でも、開発メンバーがWindows Formsに習熟している場合や、アプリケーションの機能にサンドボックスによる制限があってもよいか(最新の安全に動作するためのプラットフォームはサンドボックスモデルを採用しており要求によっては適していない場合もあります)を考慮して、MultiTouchを利用すれば、Windows Formsも検討の候補になりうることを覚えておいてください。

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

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

もっと読む

この記事の著者

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

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング