MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > マルチタッチ機能 > SPREADのタッチ操作 > タッチ操作によるInputManセルの使用 > タッチ操作によるInputManセルのタッチツールバー |
InputManセルは、タッチ操作によるセルの編集時にタッチツールバーを表示できます。また、タッチツールバーをカスタマイズすることもできます。
InputManセルのShowTouchToolBar プロパティにより、編集中のセルでどのようなタッチ操作が行われたときにタッチツールバーを表示するかを設定できます。設定には、TouchToolBarDisplayOptions 列挙体の値を使用しますが、複数の値を組み合わせて設定することもできます。
TouchToolBarDisplayOptions値 | 解説 |
---|---|
None | タッチツールバーを表示しません。 |
PressAndHold | 長押ししたときにタッチツールバーを表示します。 |
TapSelection | 選択されたテキストをタップしたときにタッチツールバーを表示します。 |
TapGripper | グリッパー(丸い選択ハンドル)をタップしたときにタッチツールバーを表示します。 |
次のサンプルコードは、編集中のセルで、グリッパーをタップすることでタッチツールバーを表示するよう設定します。
C# |
コードのコピー
|
---|---|
GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxCellType imtc = new GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxCellType();
imtc.ShowTouchToolBar = GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarDisplayOptions.TapSelection | GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarDisplayOptions.TapGripper;
fpSpread1.ActiveSheet.Columns[0].CellType = imtc;
|
Visual Basic |
コードのコピー
|
---|---|
Dim imtc As New GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxCellType() imtc.ShowTouchToolBar = GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarDisplayOptions.TapSelection Or GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarDisplayOptions.TapGripper FpSpread1.ActiveSheet.Columns(0).CellType = imtc |
編集時のタッチツールバーは、各セルの TouchToolBar プロパティが参照するTouchToolBarオブジェクトで形成されます。この TouchToolBar クラスは ToolStrip クラスから継承されます。よって ToolStrip クラスを使用した標準のツールバーのような方法で、編集時のタッチツールバーもカスタマイズすることができます。
タッチツールバーに搭載されるタッチツールバーボタンはTouchToolBarButtonオブジェクトで定義され、TouchToolBarクラスのItemsプロパティから参照されます。また、タッチツールバーボタンに割り当てられる動作はITouchBarActionインタフェースを使用して実装します。
次のコードは、InputManセルのデフォルトのタッチツールバーボタンをすべて削除し、すべて選択、選択を解除の動作をタッチツールバーボタンに追加しています。
C# |
コードのコピー
|
---|---|
private void Form1_Load(object sender, EventArgs e) { // 「すべて選択」ボタンを生成 GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarButton selectBtn = new GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarButton(new SelectAction(), "すべて選択", null); // 「選択を解除」ボタンを生成 GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarButton deselectBtn = new GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarButton(new DeselectAction(), "選択を解除", null); GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxCellType imtc = new GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxCellType(); imtc.ShowTouchToolBar = GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarDisplayOptions.TapSelection | GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarDisplayOptions.TapGripper; // タッチツールバーボタンをすべて削除 imtc.TouchToolBar.Items.Clear(); // タッチツールバーに生成した2つのボタンとセパレータ(境界線)を追加 imtc.TouchToolBar.Items.AddRange(new ToolStripItem[] { selectBtn, new ToolStripSeparator(), deselectBtn }); fpSpread1.ActiveSheet.Columns[0].CellType = imtc; } // タッチツールバーボタンに割り当てる文字をすべて選択する動作を実装するクラス public class SelectAction : GrapeCity.Win.Spread.InputMan.CellType.ITouchBarAction { public bool CanExecute(object target) { GrapeCity.Win.Spread.InputMan.CellType.EditBase owner = target as GrapeCity.Win.Spread.InputMan.CellType.EditBase; if (owner == null) { return false; } return true; } public void Execute(object target) { GrapeCity.Win.Spread.InputMan.CellType.EditBase owner = target as GrapeCity.Win.Spread.InputMan.CellType.EditBase; owner.SelectAll(); } } // タッチツールバーボタンに割り当てる文字の選択を解除する動作を実装するクラス public class DeselectAction : GrapeCity.Win.Spread.InputMan.CellType.ITouchBarAction { public bool CanExecute(object target) { GrapeCity.Win.Spread.InputMan.CellType.EditBase owner = target as GrapeCity.Win.Spread.InputMan.CellType.EditBase; if (owner == null) { return false; } return true; } public void Execute(object target) { GrapeCity.Win.Spread.InputMan.CellType.EditBase owner = target as GrapeCity.Win.Spread.InputMan.CellType.EditBase; owner.DeselectAll(); } } |
Visual Basic |
コードのコピー
|
---|---|
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' 「すべて選択」ボタンを生成します。 Dim selectBtn As New GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarButton(New SelectAction(), "すべて選択", Nothing) ' 「選択を解除」ボタンを生成します。 Dim deselectBtn As New GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarButton(New DeselectAction(), "選択を解除", Nothing) Dim imtc As New GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxCellType() imtc.ShowTouchToolBar = GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarDisplayOptions.TapSelection Or GrapeCity.Win.Spread.InputMan.CellType.TouchToolBarDisplayOptions.TapGripper ' タッチツールバーボタンをすべて削除 imtc.TouchToolBar.Items.Clear() ' タッチツールバーに生成した2つのボタンとセパレータ(境界線)を追加 imtc.TouchToolBar.Items.AddRange(New ToolStripItem() {selectBtn, New ToolStripSeparator(), deselectBtn}) FpSpread1.ActiveSheet.Columns(0).CellType = imtc End Sub ' タッチツールバーボタンに割り当てる文字をすべて選択する動作を実装するクラス Public Class SelectAction Implements GrapeCity.Win.Spread.InputMan.CellType.ITouchBarAction Public Function CanExecute(target As Object) As Boolean Implements GrapeCity.Win.Spread.InputMan.CellType.ITouchBarAction.CanExecute Dim owner As GrapeCity.Win.Spread.InputMan.CellType.EditBase = target If owner Is Nothing Then Return False End If Return True End Function Public Sub Execute(target As Object) Implements GrapeCity.Win.Spread.InputMan.CellType.ITouchBarAction.Execute Dim owner As GrapeCity.Win.Spread.InputMan.CellType.EditBase = target owner.SelectAll() End Sub End Class ' タッチツールバーボタンに割り当てる文字の選択を解除する動作を実装するクラス Public Class DeselectAction Implements GrapeCity.Win.Spread.InputMan.CellType.ITouchBarAction Public Function CanExecute(target As Object) As Boolean Implements GrapeCity.Win.Spread.InputMan.CellType.ITouchBarAction.CanExecute Dim owner As GrapeCity.Win.Spread.InputMan.CellType.EditBase = target If owner Is Nothing Then Return False End If Return True End Function Public Sub Execute(target As Object) Implements GrapeCity.Win.Spread.InputMan.CellType.ITouchBarAction.Execute Dim owner As GrapeCity.Win.Spread.InputMan.CellType.EditBase = target owner.DeselectAll() End Sub End Class |