Dim datatable_default_view As DataTable = _datatable.DefaultView.ToTable
Dim servicenumber As String = datatable_default_view.Rows.Item(e.RowIndex)("Service Number").ToString
'gets the service number of the selected row
If _datatable.PrimaryKey.Length = 0 Then
Dim keys(0) As DataColumn
keys(0) = _datatable.Columns("Service Number")
_datatable.PrimaryKey = keys
End If
Dim datarow_edited As DataRow = _datatable.Rows.Find(servicenumber)
Try
MsgBox("Record" + datarow_edited("service number") + " was edited")
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error")
End Try
動作しません:
セル内の終了時に「data_row編集した」変数は初期化されません。 キーボードを使用してモードを編集します(例:下向き矢印を押す)。 マウスを使用すると、正常に動作します。どうしてこれなの ?それは私がVB.net 2008を使用している既知のバグですか?助けてくださいdatatable.Rows.Findは、私がDatagridView_CellEndEditイベント</p> <p>問題の下にこのコードを入れている
私はサンプルデータhereとサンプルプロジェクトをアップロードしました。可能であれば、それをチェックしてください。
私はXPでもVS 2008を使用しています(7も試しました)。これは[**クリップ**](https://skydrive.live.com/redir.aspx?cid=923085ae74a2e362&resid=923085AE74A2E362!302&parid = 923085AE74A2E362!300&authkey =!AHGVjqhn6ODlJRo)あなたに何が起こっているのかを伝えてください。キーボードを使用して終了すると(2回目の試み)、「オブジェクト参照はオブジェクトのインスタンスに設定されていません」というエラーが表示されます – gawicks
これは機能しました!ありがとうMan.Youロック! – gawicks