他のコンポーネントを組み合わせる
MultiTouchにInputManやPlusPakを組みわせることで、更にタッチ操作に適した画面を作成することが可能になります。
GcIme
GcImeを使用すると、Windows 8以降に追加されたタッチ対応のソフトウェアの表示非表示をプログラムから制御することができます。
GcImeの追加方法
GcImeを追加するには、上記「コントロールの追加」項目に従いGcImeをツールボックスに追加します。
デザインビューから画面にGcImeをドロップします。
TextBoxにフォーカスが当たるとソフトウェアキーボードを表示したい場合、以下のようにTextBoxにEnterとLeaveイベントを設定します。
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をツールボックスに追加後、以下のようにコードを記述します。
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も検討の候補になりうることを覚えておいてください。