質問編集履歴

1

追加の疑問を書かせていただきました。

2019/12/05 08:33

投稿

mahry
mahry

スコア37

title CHANGED
File without changes
body CHANGED
@@ -41,4 +41,35 @@
41
41
  End Sub
42
42
  ```
43
43
 
44
- 上記のようにすると行追加時にCLASSセルに「J3」と出るのですが、当然前行が必ず「J3」になるとも限らないのでダメでした。
44
+ 上記のようにすると行追加時にCLASSセルに「J3」と出るのですが、当然前行が必ず「J3」になるとも限らないのでダメでした。
45
+
46
+ 追加の疑問
47
+ ---
48
+ 新規追加した行を削除するとき、
49
+ ```VB.NET
50
+ Private Sub DeleteRowsButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DeleteowsButton.Click
51
+ Try
52
+ 'DataGridView = mrs
53
+ Dim ClassData As DataTable = CType(mrs.DataSource, DataTable)
54
+
55
+ For i As Integer = 0 To ClassData.Rows.Count - 1
56
+ 'celCHECKは選択ボックスです。未選択で「0」 選択すると「1」に変わります
57
+ If ConvertInt32(ClassData.Rows(i)("CHECK")) = 0 Then Continue For
58
+
59
+ ClassData.Rows.RemoveAt(i)
60
+
61
+ Next
62
+
63
+ Catch ex As Exception
64
+ m_objLogFunc.WriteExceptionLog(ex)
65
+ Finally
66
+ '強制的に画面に戻る
67
+ getMenuBar()
68
+ End Try
69
+ End Sub
70
+ ```
71
+
72
+ このように削除処理を入れているのですが、
73
+ 例えば5行分データがあるとき、3行目(Rows(2))を削除する際に「5行目(Rows(4))に行がない」ということで突き返されてしまいます。
74
+ 削除後「i -= 1」を入れたらいけるだろうか、と思ったのですがうまくできませんでした。新規行追加と合わせて、もし良いアドバイスがあれば賜りたいと思います。
75
+ よろしくお願いします。