Copyright © GrapeCity inc. All rights reserved.
True DBGrid for WinForms
チュートリアル19: 範囲選択
チュートリアル > チュートリアル19: 範囲選択

このチュートリアルでは、SelectedRows オブジェクトと SelectedCols オブジェクトを使用して、Microsoft Excel の形式でグリッドの範囲をコピーする方法を学びます。

以下の手順を実行します。

  1. チュートリアル1:C1TrueDBGrid を DataSet に連結するで作成したプロジェクトから始めます。
  2. フォームの左下側にコマンドボタンを配置して、ボタンの Text プロパティを「コピー」に設定します。
  3. Button1 のクリックイベントに次のコードを追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    ' クリップボード上にコピーされる文字列。
    Dim strTemp As String
     
    Dim row As Integer
    Dim col As C1.Win.C1TrueDBGrid.C1DataColumn
    Dim cols As Integer, rows As Integer
    If Me.C1TrueDBGrid1.SelectedRows.Count > 0 Then
        For Each row In Me.C1TrueDBGrid1.SelectedRows
     
            '  文字列をフォーマットします。
            For Each col In Me.C1TrueDBGrid1.SelectedCols
                strTemp = strTemp & col.CellText(row) & vbTab
            Next
        strTemp = strTemp & vbCrLf
        Next
        System.Windows.Forms.Clipboard.SetDataObject(strTemp, False)
        MessageBox.Show ("Range of " & Me.C1TrueDBGrid1.SelectedCols.Count & " x " & C1TrueDBGrid1.SelectedRows.Count & " cells have been copied to the clipboard in TAB delimited format")
    Else
        MessageBox.Show ("Please select a range of cells")
    End If
    

    C# コードの書き方

    C#
    コードのコピー
    // クリップボード上にコピーされる文字列。
    string strTemp;
     
    int row;
    C1.Win.C1TrueDBGrid.C1DataColumn col;
    int cols, rows;
    if (this.c1TrueDBGrid1.SelectedRows.Count > 0 ) 
    {
        foreach (row in this.c1TrueDBGrid1.SelectedRows)
        {
     
            //  文字列をフォーマットします。
            foreach (col in this.c1TrueDBGrid1.SelectedCols)
            {
                strTemp = strTemp + col.CellText(row) + "\t";
            } 
            strTemp = strTemp + "\n";
         } 
        System.Windows.Forms.Clipboard.SetDataObject(strTemp, false);
        MessageBox.Show ("Range of " + this.c1TrueDBGrid1.SelectedCols.Count.ToString() + " x " + this.c1TrueDBGrid1.SelectedRows.Count.ToString() + " cells have been copied to the clipboard in TAB delimited format");
    } 
    else 
    {
        MessageBox.Show ("Please select a range of cells");
    }
    

プログラムを実行し、次の動作を確認します。

これでチュートリアル 19 は終了です。