Copyright © GrapeCity inc. All rights reserved.
True DBGrid for WinForms
非連結グリッドに新しい行を追加する
データ連結 > 非連結グリッドに新しい行を追加する

C1TrueDBGrid.NewRow メソッドを使用すれば、非連結グリッドに新しい行を簡単に追加できます。このメソッドは非連結グリッドと同じスキーマでSystem.Data.DataRow を新しく作成します。次の手順で、非連結グリッドの DataRowCollection を取得する C1TrueDBGrid.Rows コレクションと、新しい行を非連結グリッドの指定したインデックスに挿入する C1TrueDBGrid.NewRow メソッドを使用します。

次の手順を実行します。

  1. 新しい .NET プロジェクトを作成します。
  2. ツールボックスに移動し、C1TrueDBGridLabelNumericUpDown、および Button の各コントロールをフォームに追加します。
  3. Button1.Text プロパティを「行の追加」に設定し、Label1.Text プロパティを「新規行のインデックス」に設定します。
  4. フォーム上のコントロールを次の画像のように配置します。
  5. コードビューに切り替え、次の imports 文(または using 文)をプロジェクトに追加します

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    imports C1.Win.C1TrueDBGrid
    

    C# コードの書き方

    C#
    コードのコピー
    using C1.Win.C1TrueDBGrid;
    
  6. 次のコードを追加して Form_Load イベントを作成し、データをグリッドに追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
        'キャプションをグリッドに追加します。
        Me.C1TrueDBGrid1.Caption = "Unbound Grid"
     
        ' 列をグリッドに追加します。
        Me.C1TrueDBGrid1.Columns.Add(New C1.Win.C1TrueDBGrid.C1DataColumn("Col 1", GetType(String)))
        Me.C1TrueDBGrid1.Columns.Add(New C1.Win.C1TrueDBGrid.C1DataColumn("Col 2", GetType(String)))
        Me.C1TrueDBGrid1.Columns.Add(New C1.Win.C1TrueDBGrid.C1DataColumn("Col 3", GetType(String)))
        Me.C1TrueDBGrid1.Columns.Add(New C1.Win.C1TrueDBGrid.C1DataColumn("Col 4", GetType(String)))
     
        ' 引数を指定せずに、SetDataBinding メソッドを呼び出します。.
        Me.C1TrueDBGrid1.SetDataBinding()
     
        ' グリッドに値を入力します。
        Dim i As Integer
        For i = 0 To 20 - 1
            Dim s As String = String.Format("Data {0};Data {1};Data {2}; Data {3}", New Object() {i, i, i, i})
            Me.C1TrueDBGrid1.AddRow(s)
        Next i
    End Sub
    

    C# コードの書き方

    C#
    コードのコピー
    private void Form1_Load(object sender, EventArgs e)
    {
        // キャプションをグリッドに追加します。
        this.c1TrueDBGrid1.Caption = "Unbound Grid"
     
        // 列をグリッドに追加します。
        this.c1TrueDBGrid1.Columns.Add(new C1.Win.C1TrueDBGrid.C1DataColumn("Col 1", typeof(string)));
        this.c1TrueDBGrid1.Columns.Add(new C1.Win.C1TrueDBGrid.C1DataColumn("Col 2", typeof(string)));
        this.c1TrueDBGrid1.Columns.Add(new C1.Win.C1TrueDBGrid.C1DataColumn("Col 3", typeof(string)));
        this.c1TrueDBGrid1.Columns.Add(new C1.Win.C1TrueDBGrid.C1DataColumn("Col 4", typeof(string)));
        
        // 引数を指定せずに、SetDataBinding メソッドを呼び出します。
        this.c1TrueDBGrid1.SetDataBinding();
        
        // グリッドに値を入力します。
        for (int i = 0; i < 20; i++)
        {
            string s = String.Format("Data {0};Data {1};Data {2}; Data {3}", i, i, i, i);
            this.c1TrueDBGrid1.AddRow(s);
        }
    }
    
  7. 次のコードを追加して Button_Click イベントを作成し、ボタンがクリックされるときに、指定したインデックスに新しい行を作成します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim idx As Integer = CInt(Me.NumericUpDown1.Value)
        ' 新しい行を作成します。
        Dim dr As DataRow = Me.C1TrueDBGrid1.NewRow
        dr.Item(0) = "new row"
        ' 選択したインデックスで新しい行を追加します。
        Me.C1TrueDBGrid1.Rows.InsertAt(dr, idx)
    End Sub
    

    C# コードの書き方

    C#
    コードのコピー
    private void button1_Click(object sender, EventArgs e)
    {
        int idx = (int) this.numericUpDown1.Value;
        // 新しい行を作成します。
        DataRow dr = this.c1TrueDBGrid1.NewRow();
        dr[0] = "new row";
        // 選択したインデックスで新しい行を追加します。
        this.c1TrueDBGrid1.Rows.InsertAt(dr, idx);
    }
    

アプリケーションを実行して確認します。

フォームは次のようになります。


矢印を使って[新規行のインデックス]ボックスの数を変更し、<行の追加>ボタンを選択します。選択したインデックスに新しい行が表示されます。

関連トピック