PowerTools SPREAD for Windows Forms 8.0J > 開発者ガイド > マルチタッチ機能 > タッチツールバー |
タッチツールバーを使用して、セルの切り取り、コピー、貼り付けを行えます。タッチツールバーを表示するには、選択した範囲をタップします。
以下、既定で表示されるタッチツールバーです。
タッチツールバーをカスタマイズして、他のオプションを提供することもできます。カスタマイズしたタッチツールバーを表示するには、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 |