タッチツールバーを利用するにはGcTouchToolBarコントロールを使用します。GcTouchToolBarコントロールは、タッチ操作を支援するUIコントロールです。
GcTouchToolBarコントロールは下記のコントロールに対し、コンテキストメニュー処理と同様のタッチツールバー機能を提供します。これらのコントロール上に表示されたタッチツールバーで、貼り付け / 切り取り / コピー / 削除 / 元に戻す / すべて選択 ツールボタンをタップした場合、各コントロールでコンテキストメニューから同名の項目を選択した場合と同じ処理を実行します。
.Net Framework 標準コントロール
- TextBox
- ComboBox
- DomainUpDown
- MaskedTextBox
- RichTextBox
- NumericUpDown
PlusPak コントロール
- GcColorPicker
- GcFontPicker
未対応コントロールでの動作
対応コントロール以外のコントロールでもタッチツールバーを表示させることが可能です。ただしこの場合、タッチツールバー上のボタン押下に応じて下記のような動作が実行され、処理の結果は各コントロールの動作に依存します。例えば対象のコントロールで’Ctrl + C’キー押下時の動作にコピー処理が割り当てられていない場合、タッチツールバー上のコピーボタンを押下した場合でもコピーは実行されません。また、’Ctrl + C’キー押下の動作として特定の処理が割り当てられている場合には、その動作が実行されます。
ツールボタン |
実行される動作 |
コピー |
対象のコントロールに ’Ctrl + C’ キーを送信します |
切り取り |
対象のコントロールに ’Ctrl + X’ キーを送信します |
貼り付け |
対象のコントロールに ’Ctrl + V’ キーを送信します |
すべて選択 |
対象のコントロールに ’Ctrl + A’ キーを送信します |
元に戻す |
対象のコントロールに ’Ctrl + Z’ キーを送信します |
削除 |
対象のコントロールに ’DEL’ キーを送信します |
タッチツールバー上のツールボタンには、コピーや貼り付けなどの動作(アクション)が設定されており、これらはITouchBarActionインターフェイスを使用して定義、実装されています。
ITouchBarActionインターフェイスのCanExecuteメソッドを使用することで、タッチツールバー上のツールボタンが実行可能な状態かどうかを取得することが可能です。
CanExecuteメソッドの戻り値 |
説明 |
True |
アクションが実行可能な状態を示します。タッチツールバー上ではツールボタンが有効な状態となり、ボタン押下によってアクションが実行可能となります。 |
False |
アクションが実行不可能な状態を示します。タッチツールバー上ではツールボタンが無効な状態(グレー表示)となり、ボタンを押下してもアクションは実行されません。 |
対応コントロールでのタッチツールバー表示では、下記のツールボタンでは、状況によってCanExecuteメソッドの戻り値が自動で変更され、ツールボタンの表示に反映されます。
- コピー
- 切り取り
- 貼り付け
- すべて選択
- 元に戻す
- 削除
例えば貼り付けボタンについて、クリップボードにコピーされたデータが存在しない場合、このボタンに割り当てられているアクションのCanExecuteメソッドの戻り値はFalseとなり、タッチツールバー上のボタン外観は自動的にグレー表示となります。
なお、未対応コントロールでのタッチツールバー表示では、上記のツールボタンに割り当てられたアクションの
CanExecuteメソッドは対象コントロールにおけるフォーカスの有無のみをチェックし、その結果を返します。このため、クリップボードやその他の状況にかかわらず、対象コントロールにフォーカスのある場合には、タッチツールバー上のすべてのツールボタンが押下可能な状態として表示されます。
下記のサンプルコードはCanExecuteメソッドを使用してツールボタンが実行可能かどうかを確認する例です。
初期状態のGcTouchToolBarコントロールには、”コピー”や”貼り付け”などのツールボタンが設定されていません。このため、GcTouchToolBarコントロールをフォームに配置した後、ツールボタンを設定する必要があります。
ツールボタンの例
スマートタグからのツールボタン設定
フォーム上に配置したGcTouchToolBarコントロールのスマートタグに表示されるデフォルトツールボタンの追加をクリックすることで、貼り付けやコピー、切り取りや削除など、一般的なコンテキストメニューに対応したツールボタンを一括で追加することができます。
この操作では、デフォルトツールボタンとして下記のツールボタンがタッチツールバーに設定されます。
- 貼り付け
- 切り取り
- コピー
- 削除
- 元に戻す
- すべて選択
コードからのツールボタン設定
コードから動的にツールボタンを追加する場合、一括追加機能はありません。以下の例に示されるように、それぞれのツールボタンを個別に追加する必要があります。
下記のサンプルは、貼り付け、区切り線、切り取りのツールボタンをそれぞれタッチツールバーに動的に追加する例です。
フォーム上に配置したGcTouchToolBarコントロールのスマートタグにあるツールボタンの編集... をクリックするとTouchToolBarItem コレクションエディターが表示されます。このエディターを利用することで、ツールバー上にあるツールボタンの並び順やアイコン、動作(アクション)やツールボタンの個別追加などを視覚的に設定することが可能です。
また、コードからツールボタンの編集を行う場合には、GcTouchToolBarコントロールのインスタンスからツールボタンを取得し、各種プロパティにアクセスしてそれぞれの設定を行います。
以下のサンプルコードはタッチツールバーにある先頭のツールボタンを取得して、”貼り付け”のツールボタンとして設定を行う例です。
GcTouchToolBarコントロールの
AdditionalMenuStripプロパティと.Net FrameworkのContextMenuStripコントロールを利用することで、タッチツールバーにコンテキストメニューを追加することができます。
プロパティウィンドウからの設定
プロパティウィンドウにあるGcTouchToolBarコントロールの
AdditionalMenuStripプロパティをクリックすると、フォームに配置されているContextMenuStripコントロールの一覧が表示されます。設定したいContextMenuStripコントロールを選択してコンテキストメニューをタッチツールバーに追加します。
コードからの設定
GcTouchToolBarコントロールにコードから動的にコンテキストメニューを追加する場合には、ContextMenuStripオブジェクトを生成し、
AdditionalMenuStripプロパティに設定します。以下はコードでコンテキストメニューを生成しタッチツールバーに設定する例です。