トップ回答者
DataGridView で RowState に合わせて行を色付けするには

質問
-
DataGridView で行の状態に合わせて行を色付けしようとしています。
参考
- Re: Show RowState in DataGridView as color - MSDN Forums『データ保存の概要』 によると、行の状態には、「行が変更されているかどう
かを示すフラグ (RowState)」を使って調べることができるそうです。
で、あるセルの内容を書き換えたとして、編集が終了した際に、行を
"Modified" 状態や "Added" 状態と認識して行の背景色を設定したいのですが、-
RowState は DataRow の列挙体
-
色付けする行は DataGridViewRow
というふうに、別々なものを扱わないといけないと思います。
そこで疑問なのは、今編集した行の状態を知るのに、DataGridViewRow に対応した DataRow を
どうやって調べるのか、ということです。上記 "参考" では、RowPrePaint を使って描くように言って
いますが、結局 RowState を見なきゃならないんじゃないのかな?と思ってます。DataTable の DataRowCollection を foreach() で1つずつ見ていき、
DataGridView 全体で行の編集状態を色づけするという手もあるでしょうが、
凄い行数あった場合は時間かかりそうだし、無駄が多いように感じます。今編集した行のみを状態 (Modified, Added) に合わせて色付けしたい場合、
どういう書き方になるのでしょう?
-
回答
すべての返信
-
以下なんかはどうでしょうか?
ADO.NET Typed DataSet objects
http://searchsqlserver.techtarget.com/generic/0,295582,sid87_gci1188427,00.html -
trapemiya さんからの引用 以下なんかはどうでしょうか?
ADO.NET Typed DataSet objects
http://searchsqlserver.techtarget.com/generic/0,295582,sid87_gci1188427,00.htmlまた有益な情報ありがとうございます。
Figure 1-5 辺りを読んでみます。
ついでに RELATED CONTENT も。
trapemiya さん、こんなところも目を通してるんですね。
-
TH01 さんからの引用
trapemiya さんの一例の他では近場だと DataBoundItem でも取得できます。
TH01 さん、追加情報ありがとうございます。
TH01 さんからの引用
DataGridViewRow gridViewRow = dataGridView1.Rows[e.RowIndex];
DataRow row = ((DataRowView)gridViewRow.DataBoundItem).Row;
まだ私が理解できてない DataView 絡みですね。
ここをどうにかしなきゃなぁ。
でも、DataBoundItem で DataView が取れるんですね。へぇ。
データ連結されていた場合のみだったかな。
- DataGridViewRow.DataBoundItem プロパティCode Snippet行に値を読み込むデータ バインド オブジェクトを取得します。
# ...何を言ってるの? msdn 分かりづらい。
解説
行オブジェクトを使用したデータ バインド オブジェクトへの直接アクセスは、
そのオブジェクトが含まれるデータソースに直接アクセスできない場合に便利
です。
この方法は、選択された行やイベントハンドラへの引数として渡された行にバ
インドされたオブジェクトを操作する場合にも便利です。 -
trapemiya さんからの引用
いえ、さっき検索したばかりです。本文は読んでません。(^^;
でも、図的にはよくできていると思います。
web の html って組版には未だに不向きな感じがするので、図解の説明ページ
なんて良いものがそうそうありませんね。作るの手間ですから。
あの図で言いたいことは分かります。msdn は図解が殆ど無いから、頭に叩き込むのに苦労します。
ブラウザで文章読むのって適してないのに、あの文章量。
しかも、読解の難しい表現。
trapemiya さんからの引用
種をあかせばイメージ検索でググっただけです。
イメージ検索、そういう手があったか。私も他にないか探してみます。
...おぉ、"sql dataset" で検索してみましたが、色とりどり。
果たしていい情報が見つかるか。
大体こういうのは英語圏しかいいのが見つからないんですよね (経験的に)。
今では特に重要じゃなくなったけど CellStyle について
http://www.devolutions.net/articles/DataGridView%20FAQ_fichiers/image024.gif
-
下記スレッドにて、TH01 さんから参考になるコードを提供していただきました。
- DataTable の変化を、それに接続されている末端のコントロールへ伝える方法はありませんか?
2ページ目の上から2つ目の投稿。感謝。
-