MESCIUS SPREAD for Windows Forms 17.0J
タッチ操作による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
参照

 

 


© MESCIUS inc. All rights reserved.