バージョン

WinGrid のクリップボード操作付きの編集メニューの作成

始める前に

WinGrid コントロールでは、クリップボード操作を非常に簡単かつ迅速に実行できます。この概念は、WinGrid に特に変更を加えることなく適用されました。クリップボード機能は、WinGrid に動作として組み込まれています。このチュートリアルでは、クリップボード操作の PerformAction メソッドを使用します。

このメソッドでは、1 行のコードを記述するだけでいくつかのタスクを実行できます。この詳細なガイドでは、WinToolbarsManager コンポーネントを使用して編集メニューを作成します。また、WinGrid コントロールを使用してグリッドを作成します。作成したグリッドは、WinDataSource コンポーネントにより作成されたデータ ソースにバインドします。この編集メニューには、[コピー]、[貼り付け]、[切り取り] などのクリップボード操作がいくつか含まれます。ツールのキーに基づいて特定の動作を行うには switch ステートメントを記述します。

次の手順を実行します。

  1. 必要なコントロールを備えた新しい Windows Forms を作成します。

    1. 新しいプロジェクトを作成します。

    2. ツールボックスから UltraToolbarsManager コンポーネントをフォームにドラッグします。[UltraToolbarsManager 初期化] ダイアログボックスが開きます。[はい] をクリックします。

    3. UltraDataSource コンポーネントをフォームにドラッグします。

    4. UltraGrid コントロールをフォームにドラッグします。[UltraWinGrid クイックスタート] ダイアログ ボックスが開きます。[完了] をクリックします。

    5. [プロパティ] ウィンドウで、WinGrid の DataSource プロパティを ultraDataSource1 に設定します。

    6. DisplayLayout、次に Override を展開します。AllowMultiCellOperations プロパティを "All" に設定します。

    7. 見やすいようにグリッドのサイズを変更します(たとえば、Dock プロパティを "Fill" に設定します)。

      この時点で、フォームは次のようになります。

      WinGrid Walkthrough Creating an Edit Menu with Clipboard Operations for WinGrid 01.png
  2. ツールバー上で [編集] メニューを作成します。

    1. コンポーネント トレイで ultraToolbarsManager1 コンポーネントを選択します。[新規ツールバー…] ボタンがフォームの上部に表示されます。

    2. [新規ツールバー…​] ボタンをクリックします。[新規ツールバー] ダイアログ ボックスが開きます。[ツールバーの種類] ドロップダウン リストで [メイン メニュー バー] を選択します。

      WinGrid Walkthrough Creating an Edit Menu with Clipboard Operations for WinGrid 02.png
    3. [OK] をクリックします。

    4. フォームの上部にある [ツールの新規追加] をクリックします。

      WinGrid Walkthrough Creating an Edit Menu with Clipboard Operations for WinGrid 03.png
    5. [新規ツール] ダイアログ ボックスが開きます。

      WinGrid Walkthrough Creating an Edit Menu with Clipboard Operations for WinGrid 04.png
    6. [ツールの種類] ドロップダウン リストで [ポップアップ メニュー] を選択します。[キャプション] フィールドで、編集 と入力します([キー] フィールドのテキストとして、自動的に [キャプション] フィールドのテキストが移植されます)。

    7. [追加] をクリックして、終了します。

    8. 新たに追加された [編集] ツールをクリックします。[新規ツールの挿入]、次に [新規ツールの挿入…​] をクリックします。

      WinGrid Walkthrough Creating an Edit Menu with Clipboard Operations for WinGrid 05.png
    9. [新規ツール] ダイアログ ボックスが開きます。[キャプション] フィールドで [ツールの種類] ドロップダウン リストを [ボタン] に変更し、"元に戻す" と入力します([キー] フィールドのテキストとして、[キャプション] フィールドのテキストが自動的に移植されます)。

      WinGrid Walkthrough Creating an Edit Menu with Clipboard Operations for WinGrid 06.png
    10. [追加] をクリックします。ツールがツールバーに追加されます。ツールバーに、さらに別のツールを追加できます。

    11. 'i' から 'j' までの手順を繰り返して [やり直し]、[切り取り]、[コピー]、[貼り付け]、[削除]、および [すべてのツールを選択] を作成し、キャプションをツール名に合わせて変更します。すべてのツールを追加したら、[閉じる] をクリックします。[編集] メニューは次のようになります。

      WinGrid Walkthrough Creating an Edit Menu with Clipboard Operations for WinGrid 07.png
  3. コード ビハインドを作成します。

    1. コンポーネント トレイで ultraToolbarsManager コンポーネントが選択されていることを確認します。

    2. [プロパティ] ウィンドウで [イベント] ボタンをクリックします。

    3. ToolClick イベントをダブルクリックします。ToolClick イベントが作成されます。

    4. このイベントに次のコードを入力します。

      Visual Basic の場合:

      Imports Infragistics.Win.UltraWinGrid
      ...
      Private Sub ultraToolbarsManager1_ToolClick(sender As Object, _
        e As Infragistics.Win.UltraWinToolbars.ToolClickEventArgs)
         Select Case e.Tool.Key
            Case "Undo"
               Me.ultraGrid1.PerformAction(UltraGridAction.Undo)
            Case "Redo"
               Me.ultraGrid1.PerformAction(UltraGridAction.Redo)
            Case "Copy"
               Me.ultraGrid1.PerformAction(UltraGridAction.Copy)
            Case "Paste"
               Me.ultraGrid1.PerformAction(UltraGridAction.Paste)
            Case "Cut"
               Me.ultraGrid1.PerformAction(UltraGridAction.Cut)
            Case "Delete"
               Me.ultraGrid1.PerformAction(UltraGridAction.DeleteCells)
            Case "Select All"
               Dim row As UltraGridRow
               For Each row In  Me.ultraGrid1.Rows.GetRowEnumerator(GridRowType.DataRow, Nothing, Nothing)
                  row.Selected = True
               Next row
         End Select
      End Sub

      C# の場合:

      using Infragistics.Win.UltraWinGrid;
      ...
      private void ultraToolbarsManager1_ToolClick(object sender,
        Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
      {
      	switch (e.Tool.Key)
      	{
      	case "Undo":
      		this.ultraGrid1.PerformAction(UltraGridAction.Undo);
      		break;
      	case "Redo":
      		this.ultraGrid1.PerformAction(UltraGridAction.Redo);
      		break;
      	case "Copy":
      		this.ultraGrid1.PerformAction(UltraGridAction.Copy);
      		break;
      	case "Paste":
      		this.ultraGrid1.PerformAction(UltraGridAction.Paste);
      		break;
      	case "Cut":
      		this.ultraGrid1.PerformAction(UltraGridAction.Cut);
      		break;
      	case "Delete":
      		this.ultraGrid1.PerformAction(UltraGridAction.DeleteCells);
      		break;
      	case "Select All":
      		foreach (UltraGridRow row in this.ultraGrid1.Rows.GetRowEnumerator(GridRowType.DataRow, null, null))
      		{
      			row.Selected = true;
      		}
      		break;
      	}
      }
  4. アプリケーションを実行します。

    いずれかのセルでクリックして、[編集] メニューからクリップボード操作を選択します。この操作はセルレベルでのみ行います。CellClickAction プロパティを RowSelect に変更した場合は、クリップボード操作は行レベルで行います。[削除] メニュー項目を起動すると、行全体を削除します。switch ステートメント内のコードは、DeleteRows 動作ではなく DeleteCells 動作を実行するように変更できます。[すべてを選択] メニュー項目は、Ultimate UI for Windows Forms 2006 Volume 1 リリースでは新しいメソッドを使用します。GetRowEnumerator メソッドについての詳しい説明は、 「グリッド全体のループ処理」を参照してください。

    WinGrid Creating an Edit Menu with Clipboard Operations for WinGrid 01.png