指定した数以上の行追加を抑止できますか?
対象製品
MultiRow for Windows Forms 10.0J
詳細
RowsAdded イベントでMultiRowのAllowUserToAddRowsプロパティをfalseに設定することで一定数以上の行追加を抑止することが可能です。
[Visual Basic]
[C#]
[Visual Basic]
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' データの作成 Dim dt As New DataTable("Test") dt.Columns.Add("ColA", GetType(String)) dt.Columns.Add("ColB", GetType(String)) For i = 0 To 2 dt.Rows.Add(String.Format("A{0}", i), String.Format("B{0}", i)) Next dt.AcceptChanges() ' MultiRowの設定 Dim template1 = GrapeCity.Win.MultiRow.Template.CreateGridTemplate(2) template1.Row.Cells(0).DataField = "ColA" template1.Row.Cells(1).DataField = "ColB" GcMultiRow1.Template = template1 GcMultiRow1.DataSource = dt GcMultiRow1.AllowUserToAddRows = True End Sub Private Sub GcMultiRow1_RowsAdded(sender As Object, e As GrapeCity.Win.MultiRow.RowsAddedEventArgs) Handles GcMultiRow1.RowsAdded ' 設定可能な行数を4行に制限 If e.RowIndex = 4 Then GcMultiRow1.AllowUserToAddRows = False End If End Sub
[C#]
private void Form1_Load(object sender, EventArgs e) { // データの作成 System.Data.DataTable dt = new System.Data.DataTable("Test"); dt.Columns.Add("ColA", typeof(String)); dt.Columns.Add("ColB", typeof(String)); for (var i = 0; i < 3; i++) { dt.Rows.Add(string.Format("A{0}", i), string.Format("B{0}", i)); } dt.AcceptChanges(); // MultiRowの設定 GrapeCity.Win.MultiRow.Template template1 = GrapeCity.Win.MultiRow.Template.CreateGridTemplate(2); template1.Row.Cells[0].DataField = "ColA"; template1.Row.Cells[1].DataField = "ColB"; gcMultiRow1.Template = template1; gcMultiRow1.DataSource = dt; gcMultiRow1.AllowUserToAddRows = true; } private void GcMultiRow1_RowsAdded(object sender, GrapeCity.Win.MultiRow.RowsAddedEventArgs e) { // 設定可能な行数を4行に制限 if (e.RowIndex == 4) { gcMultiRow1.AllowUserToAddRows = false; } }