MESCIUS SPREAD for Windows Forms 17.0J
タッチツールバー

タッチツールバーを使用して、セルの切り取り、コピー、貼り付けを行えます。タッチツールバーを表示するには、選択した範囲をタップします。

以下、既定で表示されるタッチツールバーです。

タッチツールバーをカスタマイズして、他のオプションを提供することもできます。カスタマイズしたタッチツールバーを表示するには、FpSpreadクラスのTouchStripOpening イベントを使用します。

以下、既定で表示される[切り取り]を非表示にし、他にメニュー項目を追加した例です。

設定方法

  1. カスタマイズしたタッチツールバーのアイテムを作成します。
  2. メニュー項目を作成して追加します。
  3. 新規アイテムをタッチツールバーに追加します。
  4. FpSpreadクラスのTouchStripOpeningイベントで、既定のタッチツールバーをキャンセルします。

サンプルコード

次のサンプルコードは、タッチツールバーに既定で表示される[切り取り]を非表示にし、他にメニュー項目を追加します。

C#
コードのコピー
private FarPoint.Win.Spread.CellTouchStrip touchStripwithdropdownmenu;
 
private void Form1_Load(object sender, EventArgs e)
{
    // 既定のタッチツールバーから切り取りを削除
    touchStripwithdropdownmenu = new FarPoint.Win.Spread.CellTouchStrip(this.fpSpread1);
    touchStripwithdropdownmenu.Items["Cut"].Visible = false;
    ToolStripSeparator separator1 = new ToolStripSeparator();
 
    // タッチツールバーにオートフィルを追加
    FarPoint.Win.Spread.TouchStripButton autoFill2 = new FarPoint.Win.Spread.TouchStripButton("オートフィル", Properties.Resources.AutoFill);
    autoFill2.Click += autoFill_Click;
    ToolStripSeparator separator2 = new ToolStripSeparator();
 
    // タッチツールバーにドロップダウンメニューを追加
    ToolStripDropDownButton dropDownMenu = new ToolStripDropDownButton(Properties.Resources.TouchMenuItemDownArrow);
    dropDownMenu.ShowDropDownArrow = false;
    dropDownMenu.ImageScaling = ToolStripItemImageScaling.None;
    ContextMenuStrip menu = new System.Windows.Forms.ContextMenuStrip();
    ToolStripMenuItem newcontitem1 = new ToolStripMenuItem();
    newcontitem1.Text = "コピー";
    newcontitem1.Click += newcontitem1_Click;
    newcontitem1.AutoSize = false;
    newcontitem1.Height = 30;
    newcontitem1.Width = 100;
    newcontitem1.TextAlign = ContentAlignment.MiddleLeft;
    menu.Items.Add(newcontitem1);
    ToolStripMenuItem newcontitem2 = new ToolStripMenuItem();
    newcontitem2.Text = "貼り付け";
    newcontitem2.Click += newcontitem2_Click;
    newcontitem2.AutoSize = false;
    newcontitem2.Height = 30;
    newcontitem2.Width = 100;
    newcontitem2.TextAlign = ContentAlignment.MiddleLeft;
    menu.Items.Add(newcontitem2);
    ToolStripMenuItem newcontitem3 = new ToolStripMenuItem();
    newcontitem3.Text = "クリア";
    newcontitem3.Click += newcontitem3_Click;
    newcontitem3.AutoSize = false;
    newcontitem3.Height = 30;
    newcontitem3.Width = 100;
    newcontitem3.TextAlign = ContentAlignment.MiddleLeft;
    menu.Items.Add(newcontitem3);
    dropDownMenu.DropDown = menu;
 
    touchStripwithdropdownmenu.Items.AddRange(new ToolStripItem[] { separator1, autoFill2, separator2, dropDownMenu });
 
    // オートフィルを有効化
    fpSpread1.AllowDragFill = true;
}
 
void autoFill_Click(object sender, EventArgs e)
{
    FarPoint.Win.Spread.SpreadView activeView = fpSpread1.GetRootWorkbook().GetActiveWorkbook();
    if (activeView != null)
    {
    activeView.ShowAutoFillIndicator();
    }
}
 
void newcontitem1_Click(object sender, EventArgs e)
{
    // コピー
    fpSpread1.ActiveSheet.ClipboardCopy();
}
 
void newcontitem2_Click(object sender, EventArgs e)
{
    // 貼り付け
    fpSpread1.ActiveSheet.ClipboardPaste(FarPoint.Win.Spread.ClipboardPasteOptions.Values);
}
 
void newcontitem3_Click(object sender, EventArgs e)
{
    // クリア
    int r1 = fpSpread1.ActiveSheet.Models.Selection.AnchorRow;
    int c1 = fpSpread1.ActiveSheet.Models.Selection.AnchorColumn;
    int r2 = fpSpread1.ActiveSheet.Models.Selection.LeadRow - r1 + 1;
    int c2 = fpSpread1.ActiveSheet.Models.Selection.LeadColumn - c1 + 1;
    FarPoint.Win.Spread.Model.DefaultSheetDataModel dataModel = (FarPoint.Win.Spread.Model.DefaultSheetDataModel)fpSpread1.ActiveSheet.Models.Data;
    dataModel.ClearData(r1, c1, r2, c2);
}
 
void fpSpread1_TouchStripOpening(object sender, FarPoint.Win.Spread.TouchStripOpeningEventArgs e)
{
    // 既定のタッチツールバーを表示しない
    e.Cancel = true;
 
    // カスタマイズしたタッチツールバーを表示
    touchStripwithdropdownmenu.Show(new Point(e.X - 20, e.Y - 35 - touchStripwithdropdownmenu.Height));
}
Visual Basic
コードのコピー
Private touchStripwithdropdownmenu As FarPoint.Win.Spread.CellTouchStrip
 
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' 既定のタッチツールバーから切り取りを削除
    touchStripwithdropdownmenu = New FarPoint.Win.Spread.CellTouchStrip(Me.FpSpread1)
    touchStripwithdropdownmenu.Items("Cut").Visible = False
 
    Dim separator1 As New ToolStripSeparator()
 
    ' タッチツールバーにオートフィルを追加
    Dim autoFill2 As New FarPoint.Win.Spread.TouchStripButton("オートフィル", My.Resources.AutoFill)
    AddHandler autoFill2.Click, AddressOf autoFill_Click
 
    Dim separator2 As New ToolStripSeparator()
 
    ' タッチツールバーにドロップダウンメニューを追加
    Dim dropDownMenu As New ToolStripDropDownButton(My.Resources.Resources.TouchMenuItemDownArrow)
    dropDownMenu.ShowDropDownArrow = False
    dropDownMenu.ImageScaling = ToolStripItemImageScaling.None
    Dim menu As ContextMenuStrip = New System.Windows.Forms.ContextMenuStrip()
    Dim newcontitem1 As New ToolStripMenuItem()
    newcontitem1.Text = "コピー"
    AddHandler newcontitem1.Click, AddressOf newcontitem1_Click
    newcontitem1.AutoSize = False
    newcontitem1.Height = 30
    newcontitem1.Width = 100
    newcontitem1.TextAlign = ContentAlignment.MiddleLeft
    menu.Items.Add(newcontitem1)
    Dim newcontitem2 As New ToolStripMenuItem()
    newcontitem2.Text = "貼り付け"
    AddHandler newcontitem2.Click, AddressOf newcontitem2_Click
    newcontitem2.AutoSize = False
    newcontitem2.Height = 30
    newcontitem2.Width = 100
    newcontitem2.TextAlign = ContentAlignment.MiddleLeft
    menu.Items.Add(newcontitem2)
    Dim newcontitem3 As New ToolStripMenuItem()
    newcontitem3.Text = "クリア"
    AddHandler newcontitem3.Click, AddressOf newcontitem3_Click
    newcontitem3.AutoSize = False
    newcontitem3.Height = 30
    newcontitem3.Width = 100
    newcontitem3.TextAlign = ContentAlignment.MiddleLeft
    menu.Items.Add(newcontitem3)
    dropDownMenu.DropDown = menu
 
    touchStripwithdropdownmenu.Items.AddRange(New ToolStripItem() {separator1, autoFill2, separator2, dropDownMenu})
 
    ' オートフィルを有効化
    FpSpread1.AllowDragFill = True
End Sub
 
Private Sub autoFill_Click(sender As Object, e As EventArgs)
    Dim activeView As FarPoint.Win.Spread.SpreadView = fpSpread1.GetRootWorkbook().GetActiveWorkbook()
    If activeView IsNot Nothing Then
        activeView.ShowAutoFillIndicator()
    End If
End Sub
 
Private Sub newcontitem1_Click(sender As Object, e As EventArgs)
    ' コピー
    fpSpread1.ActiveSheet.ClipboardCopy()
End Sub
 
Private Sub newcontitem2_Click(sender As Object, e As EventArgs)
    ' 貼り付け
    fpSpread1.ActiveSheet.ClipboardPaste(FarPoint.Win.Spread.ClipboardPasteOptions.Values)
End Sub
 
Private Sub newcontitem3_Click(sender As Object, e As EventArgs)
    ' クリア
    Dim r1 As Integer = fpSpread1.ActiveSheet.Models.Selection.AnchorRow
    Dim c1 As Integer = fpSpread1.ActiveSheet.Models.Selection.AnchorColumn
    Dim r2 As Integer = fpSpread1.ActiveSheet.Models.Selection.LeadRow - r1 + 1
    Dim c2 As Integer = fpSpread1.ActiveSheet.Models.Selection.LeadColumn - c1 + 1
    Dim dataModel As FarPoint.Win.Spread.Model.DefaultSheetDataModel = DirectCast(fpSpread1.ActiveSheet.Models.Data, FarPoint.Win.Spread.Model.DefaultSheetDataModel)
    dataModel.ClearData(r1, c1, r2, c2)
End Sub
 
Private Sub FpSpread1_TouchStripOpening(sender As Object, e As FarPoint.Win.Spread.TouchStripOpeningEventArgs) Handles FpSpread1.TouchStripOpening
    ' 既定のタッチツールバーを表示しない
    e.Cancel = True
 
    ' カスタマイズしたタッチツールバーを表示
    touchStripwithdropdownmenu.Show(New Point(e.X - 20, e.Y - 35 - touchStripwithdropdownmenu.Height))
End Sub
参照

 

 


© MESCIUS inc. All rights reserved.