C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: DataGridViewセル変更等イベント変更前後内容確認


(過去ログ 133 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■78461 / inTopicNo.1)  DataGridViewセル変更等イベント変更前後内容確認
  
□投稿者/ きのっぴ (1回)-(2016/01/15(Fri) 16:45:03)

分類:[VB.NET/VB2005 以降] 

【使用言語】VB2008

DataGridViewに表データを表示し、指定列のテキストを編集可能にしているのですが、
あるセルを変更した時、変更時または変更直前のイベントのようなもので変更前と変更後の内容を
確認することってできますか?
各セルに対して変更前データのようなものをあらかじめ確保しておいて、
CellValueChangedイベントが発生した時に変更前データと比較するような方法しかないでしょうか?
引用返信 編集キー/
■78484 / inTopicNo.2)  Re[1]: DataGridViewセル変更等イベント変更前後内容確認
□投稿者/ ななしん (4回)-(2016/01/18(Mon) 10:07:10)
CellBeginEditイベントで変更前のデータを保存しておいて、
CellEndEditイベントで何らかの確認をするという動作は
できるのではないかと思います。

引用返信 編集キー/
■78485 / inTopicNo.3)  Re[1]: DataGridViewセル変更等イベント変更前後内容確認
□投稿者/ ぶなっぷ (68回)-(2016/01/18(Mon) 11:00:06)
ItemsSource に ObservableCollection型のコレクションをBindingしておけば、
ObservableCollection の イベントで CollectionChanged イベントにて、

NotifyCollectionChangedEventArgs.OldItems
NotifyCollectionChangedEventArgs.NewItems
を参照するという手もありそう。

(未確認です、すいません)

引用返信 編集キー/
■78486 / inTopicNo.4)  Re[2]: DataGridViewセル変更等イベント変更前後内容確認
□投稿者/ PANG2 (98回)-(2016/01/18(Mon) 11:13:27)
> 変更直前のイベントのようなもので変更前と変更後の内容を
> 確認することってできますか?

DataGridView.CellValidating イベントで

変更後の値
e.FormattedValue

変更前の値
((DataGridView)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].Value
引用返信 編集キー/
■78487 / inTopicNo.5)  Re[3]: DataGridViewセル変更等イベント変更前後内容確認
□投稿者/ きのっぴ (2回)-(2016/01/18(Mon) 11:24:12)
みなさん、回答ありがとうございました。
PANG2さんの

> DataGridView.CellValidating イベントで
>
> 変更後の値
> e.FormattedValue
>
> 変更前の値
> ((DataGridView)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].Value

で、思い通りのことができました。

変更前の値については、VBでは以下のように書けました。
DirectCast(sender, DataGridView).Rows(e.RowIndex).Cells(e.ColumnIndex).Value


ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -