作成日: 2023/04/18 最終更新日: 2023/04/18
文書種別
使用方法
詳細
データテーブルを使用した連結グリッドの行を削除する方法として、以下の2通りが考えられます。
(1)FlexGridの行のRemoveメソッドを使用
C1FlexGrid1.RowのRemoveメソッドで、指定した行インデックスを持つC1FlexGrid.Rowオブジェクトを削除します。この方法では、表示上は行が減少しますが、連結しているデータテーブルの行は削除されません。
(2)データテーブルの行のRemoveAtメソッドを使用
DataTable.RowsのRemoveメソッドで、指定したインデックス位置にある行をコレクションから削除します。この場合、データテーブルの行そのものが削除されます。
以下に、グリッドの最終行を削除する簡単なサンプルコードを記載します。

◎サンプルコード(VB)
(1)FlexGridの行のRemoveメソッドを使用
C1FlexGrid1.RowのRemoveメソッドで、指定した行インデックスを持つC1FlexGrid.Rowオブジェクトを削除します。この方法では、表示上は行が減少しますが、連結しているデータテーブルの行は削除されません。
例)c1FlexGrid1.Rows.Remove(i);
(2)データテーブルの行のRemoveAtメソッドを使用
DataTable.RowsのRemoveメソッドで、指定したインデックス位置にある行をコレクションから削除します。この場合、データテーブルの行そのものが削除されます。
例)dt.Rows.RemoveAt(i);
以下に、グリッドの最終行を削除する簡単なサンプルコードを記載します。
◎サンプルコード(VB)
Public Class Form1
Dim dt As DataTable
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' データの設定
dt = New DataTable("TEST")
dt.Columns.Add("ColumnA", Type.GetType("System.String"))
dt.Columns.Add("ColumnB", Type.GetType("System.String"))
dt.Columns.Add("ColumnC", Type.GetType("System.String"))
Dim i As Integer
i = 0
For i = 0 To 9
dt.Rows.Add(String.Format("{0}", i), String.Format("{0}", (i * 100)), String.Format("{0}", (i * 1000)))
Next
dt.AcceptChanges()
C1FlexGrid1.DataSource = dt
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' FlexGridの最終行を削除
C1FlexGrid1.Rows.Remove(C1FlexGrid1.Rows.Count - 1)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
' データテーブルの最終行を削除
dt.Rows.RemoveAt(dt.Rows.Count - 1)
End Sub
End Class
◎サンプルコード(C#)
namespace prj_C1FlexGrid
{
public partial class Form1 : Form
{
DataTable dt;
public Form1()
{
InitializeComponent();
// データの設定
dt = new DataTable("TEST");
dt.Columns.Add("ColumnA", Type.GetType("System.String"));
dt.Columns.Add("ColumnB", Type.GetType("System.String"));
dt.Columns.Add("ColumnC", Type.GetType("System.String"));
int i;
for (i = 0; i <= 9; i++)
dt.Rows.Add(string.Format("{0}", i), string.Format("{0}", i * 100), string.Format("{0}", i * 1000));
dt.AcceptChanges();
c1FlexGrid1.DataSource = dt;
}
private void button1_Click(object sender, EventArgs e)
{
// FlexGridの最終行を削除
c1FlexGrid1.Rows.Remove(c1FlexGrid1.Rows.Count - 1);
}
private void button2_Click(object sender, EventArgs e)
{
// データテーブルの最終行を削除
dt.Rows.RemoveAt(dt.Rows.Count - 1);
}
}
}