今日、上がって来た不具合の原因…?がコレでした。
http://yiaowang.web.fc2.com/programing/vs_base/research_datatable_02.html
(404やん!orz)
私の場合は、DataGridViewの1行目のデータのみ、反映されませんでした。
2行目以降は DataGridView の値が正しくバインドされた、DataTableに反映されました。
なぜに1行目だけ反映されないのだっ!
いじめです…
ってか、コレって .Net Framework のバグだと思うんですが…
さて、上記URLでは、
・DataGridView に対して値を設定しない。
・DataTable.Copy() をする前には必ず DataTable.AcceptChanges() をする。
と記述がありますが、第3の私なりの修正方法です。
です。カレントセルが移動して良い人は、必要ないかも知れません。
私の環境では動きました。
ただ、重そうです…ループすると重そうです。全セル対応すると重そうです。
で、実験の結果、1行目だけ反映されないので、rows(0)の時だけこの処理をするようにしました。
場当たり的な対応で嫌いです。
誰かもっと良い方法を教えて。
(個人的にはDataGridViewの作成時の設定に問題がありそうな気がする…)
へるぷみー
検索用:
DataGirdView DataTable copy() DataTable.copy()
値が変わる 値が違う 値がコピーされない 正しくコピーされない
http://yiaowang.web.fc2.com/programing/vs_base/research_datatable_02.html
(404やん!orz)
私の場合は、DataGridViewの1行目のデータのみ、反映されませんでした。
2行目以降は DataGridView の値が正しくバインドされた、DataTableに反映されました。
なぜに1行目だけ反映されないのだっ!
いじめです…
ってか、コレって .Net Framework のバグだと思うんですが…
さて、上記URLでは、
・DataGridView に対して値を設定しない。
・DataTable.Copy() をする前には必ず DataTable.AcceptChanges() をする。
と記述がありますが、第3の私なりの修正方法です。
Dim tmp As DataGridViewCell = dataGridView.CurrentCell ' カレントセルを保持 dataGridView.CurrentCell = dataGridView.Rows(0).Cells(0) ' 値を変更するセルをカレントセルに設定 dataGridView.BeginEdit(True) ' 編集開始 dataGridView.Rows(0).Cells(0).Value = "aaa" ' 値を格納 dataGridView.EndEdit() ' 編集終了 dataGridView.CurrentCell = tmp ' カレントセルを戻す
です。カレントセルが移動して良い人は、必要ないかも知れません。
私の環境では動きました。
ただ、重そうです…ループすると重そうです。全セル対応すると重そうです。
で、実験の結果、1行目だけ反映されないので、rows(0)の時だけこの処理をするようにしました。
場当たり的な対応で嫌いです。
誰かもっと良い方法を教えて。
(個人的にはDataGridViewの作成時の設定に問題がありそうな気がする…)
へるぷみー
検索用:
DataGirdView DataTable copy() DataTable.copy()
値が変わる 値が違う 値がコピーされない 正しくコピーされない