Spread Windows Forms 18
Spread Windows Forms 18 Product Documentation / Developer's Guide / Touch Support with the Component / Using the Touch Menu Bar
In This Topic
    Using the Touch Menu Bar
    In This Topic

    You can use the default touch menu bar or touch strip to cut, copy, and paste cells. You can also customize the touch strip to provide additional options.

    Tap a selected range to display the touch menu bar strip.

    You can use the TouchStripOpening event to display a customized touch strip. You can also add menu items to the touch strip.

    Touch Menu Bar

    Using Code

    You can add a drop-down menu item with following code. This example also hides the "Cut" option in the touch strip.

    1. Create a customized touch strip item.
    2. Create and add a menu item
    3. Add the new items to the touch strip.
    4. Cancel the default touch strip in the TouchStripOpening event.
    C#
    Copy Code
    private FarPoint.Win.Spread.CellTouchStrip touchStripwithdropdownmenu;
     
    private void Form1_Load(object sender, EventArgs e)
    {
        // Remove Cut from default touch menu bar
        touchStripwithdropdownmenu = new FarPoint.Win.Spread.CellTouchStrip(this.fpSpread1);
        touchStripwithdropdownmenu.Items["Cut"].Visible = false;
        ToolStripSeparator separator1 = new ToolStripSeparator();
     
        // Add AutoFill to touch menu bar
        FarPoint.Win.Spread.TouchStripButton autoFill2 = new FarPoint.Win.Spread.TouchStripButton("AutoFill", Properties.Resources.AutoFill);
        autoFill2.Click += autoFill_Click;
        ToolStripSeparator separator2 = new ToolStripSeparator();
     
        // Add drop down menu to touch menu bar
        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 = "Copy";
        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 = "Paste";
        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 = "Clear";
        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 });
     
        // Enable AutoFill
        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)
    {
        // Copy
        fpSpread1.ActiveSheet.ClipboardCopy();
    }
     
    void newcontitem2_Click(object sender, EventArgs e)
    {
        // Paste
        fpSpread1.ActiveSheet.ClipboardPaste(FarPoint.Win.Spread.ClipboardPasteOptions.Values);
    }
     
    void newcontitem3_Click(object sender, EventArgs e)
    {
        // Clear
        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)
    {
        // Hide default touch menu bar
        e.Cancel = true;
     
        // Show customized touch menu bar
        touchStripwithdropdownmenu.Show(new Point(e.X - 20, e.Y - 35 - touchStripwithdropdownmenu.Height));
    }
    
    Visual Basic
    Copy Code
    Private touchStripwithdropdownmenu As FarPoint.Win.Spread.CellTouchStrip
     
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' Remove Cut from default touch menu bar
        touchStripwithdropdownmenu = New FarPoint.Win.Spread.CellTouchStrip(Me.FpSpread1)
        touchStripwithdropdownmenu.Items("Cut").Visible = False
     
        Dim separator1 As New ToolStripSeparator()
     
        ' Add AutoFill to touch menu bar
        Dim autoFill2 As New FarPoint.Win.Spread.TouchStripButton("AutoFill", My.Resources.AutoFill)
        AddHandler autoFill2.Click, AddressOf autoFill_Click
     
        Dim separator2 As New ToolStripSeparator()
     
        ' Add drop down menu to touch menu bar
        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 = "Copy"
        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 = "Paste"
        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 = "Clear"
        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})
     
        ' Enable AutoFill
        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)
        ' Copy
        fpSpread1.ActiveSheet.ClipboardCopy()
    End Sub
     
    Private Sub newcontitem2_Click(sender As Object, e As EventArgs)
        ' Paste
        fpSpread1.ActiveSheet.ClipboardPaste(FarPoint.Win.Spread.ClipboardPasteOptions.Values)
    End Sub
     
    Private Sub newcontitem3_Click(sender As Object, e As EventArgs)
        ' Clear
        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
        ' Hide default touch menu bar
        e.Cancel = True
     
        ' Show customized touch menu bar
        touchStripwithdropdownmenu.Show(New Point(e.X - 20, e.Y - 35 - touchStripwithdropdownmenu.Height))
    End Sub
    
    See Also