- PR -

[C#][WinForm]DataTable.ColumnChangedイベントにて

1
投稿者投稿内容
T.H
会議室デビュー日: 2004/08/09
投稿数: 18
お住まい・勤務地: 東京都
投稿日時: 2004-08-10 16:29
お世話になります。

DataTable.ColumnChangedイベントにて、
変更行のRowIndexを取得する事は出来ないでしょうか?

UIよりDataGridの任意のカラムを変更した場合には
DataGrid.CurrentCellからRowIndex(RowNumber)を取得出来ますが、
その他の方法でセルの値を変更した場合にRowIndexが取得出来ません。

変更行の一つ前の行に対しての処理を行いたいので、
DataColumnChangeEventArgsも使えません。

何かご存知あればアドバイスよろしくお願いします。
クマ(´・ω・`)
会議室デビュー日: 2004/07/29
投稿数: 5
投稿日時: 2004-08-11 14:41
はじめまして

senderを使用して
DataTableの行とe.Rowを比較することで
編集行の値を取得できました。

private void DataTable_ColumnChanged(object sender, DataColumnChangeEventArgs e)
{
DataTable dataTable = sender as DataTable;

if( dataTable != null )
{
//senderとe.Rowの比較をする
for( int i = 0 ; i < dataTable.Rows.Count ; i++)
{
DataRow dataRow = dataTable.Rows[i];

if( dataRow.Equals( e.Row ) )
{
Console.WriteLine( "編集行のINDEX:" + i.ToString() );
}
}
}
}

この方法だとDataTableの行が多いと大変かもしれないですね^^;
他の方法は思いつきませんでした。。
T.H
会議室デビュー日: 2004/08/09
投稿数: 18
お住まい・勤務地: 東京都
投稿日時: 2004-08-11 15:11
なるほど!
そういう方法がありましたか!すばらしい考えだと思います。

他の良い方法が見つかるまで、この方法でいきたいと思います。

本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)