毎々お世話になります。
WindowsXP-Pro Ver 2002 SP2 上で
Visual Studio 2005 Enterprise Edition で
VB2005 による開発を行っております。
以前このフォーラムで、下記質問をあげ、回答を頂き、一旦は解決したのですが、また同様の現象が発生するようになってしまいました。
「DataGridView の 最終行に続けて新規行を追加(アペンド)したいのですが、Rows.Add メソッドでは CurrentRow に Insert されてしまいます。
また、DataGridView にソート用の列("NO")を設けて、 RowsAdded イベントプロシージャ で ソートさせて
追加行を最終行に移動させるべく下記のように仕込んでみましたが、状況は変わりません。
(中略)
何かうまい手はないでしょうか?
よろしくお願いします。」
現在は
Dim iRow As Integer
Dim oRow As DataGridViewRow
With Me.DataGridView1
' 最下行の空きを検索
For iRow = .Rows.Count - 1 To 0 Step -1
If .Rows(iRow).Cells("商品名").Value Is Nothing OrElse .Rows(iRow).Cells("商品名").Value.Equals("") Then
Exit For
End If
Next iRow
' 空きがない場合は空行を確保する
If iRow < 0 Then
.CurrentCell = Me.Dgvレジ入力(.Columns("商品名").Index, .Rows.Count - 1)
.ReadOnly = False
.BeginEdit(False)
.NotifyCurrentCellDirty(True)
.EndEdit()
.ReadOnly = True
iRow = .Rows.Count - 1
End If
' 次の入力の為の空行を確保する
.CurrentCell = Me.Dgvレジ入力(.Columns("商品名").Index, iRow)
oRow = .CurrentRow
.ReadOnly = False
.BeginEdit(False)
oRow.Cells("データ種別").Value = "2" ' 0 - お買上 1-一括割引 2-一括値引
oRow.Cells("商品名").Value = "一括値引き"
oRow.Cells("割引").Value = ""
oRow.Cells("値引き").Value = -Math.Abs(CInt(Me.Txt一括値引_金額.Text))
.NotifyCurrentCellDirty(True)
.EndEdit()
.ReadOnly = True
End With
のようになっており、期待したように動作していました。
何が影響したのかわからないのですが、急に空行が作成されなくなってしまったのです。
心当たりのある方、どうか助けてください。
よろしくお願いします。