datagridチェックした順番をデータにセットするには


ひで  2008-06-20 04:57:26  No: 144855

vb.net2003のwindowsフォーム画面なのですが

チェック、順番、品名
レ          2  エンピツ
                ノート
レ          1  ケシゴム
というような感じでDataGridを表示したいのです
はじめはチェック欄と順番は
何も設定されていない状態で
チェックすると何番目にチェックしたか順番を
データにセットしたいのです
DataRowChangeEventHandlerの処理を記述しそのイベントの
中で
sub Row_Changeing(ByVal sender as object,byval e as DataRowChangeEventarg)
if e("hoge") = true then
 count = count + 1
 e("順番") = count
end if
しようとしたらe("順番") = count
このようにイベントの中で代入しようとすると実行時エラーになるようです
DataGridでチェックしたらチェック順番をデータ(DataSet)にセットして
あげるようなプログラムはどのように書けばいいでしょうか?
アドバイス下さい


Temp  2008-06-20 07:02:40  No: 144856

実行時エラーの原因がエラーメッセージに書いてあったでしょう?
解決できない内容なのですか?できないならその理由は?


ひで  2008-06-20 17:12:28  No: 144857

System.StackOverflowExceptionのハンドルされていない例外がsystem.data.dllで発生しました
というエラーになります
e.Rowは参照はできても
DataRowChangeイベントの中で値を代入する事は
ダメなのかな?と思ったのです
別の値代入方法がわからず質問しました


  2008-06-20 19:20:44  No: 144858

状況がハッキリとは分からないけど
DataSetに値をセットしたいんだよね?
DataGridは使ったこと無いけど、eに値を入れようとしても
ダメなんじゃないかな

DataRowChangeとかがVB.NET2003ヘルプで検索できなかったんで
多少違う部分があるかもしれないけど想像で書きます
(あ、そのイベント処理を無理やり作ろうとしたのか?)
ds as DataSet とすると、
e.RowのIndexとDataSet内のTableのRowIndexがシンクロしてるんだったら
ds.Tables(?).Rows(e.RowIndex).Item("順番") を変えてしまえばいいかと
(e.RowIndexってのがあるかどうかは不明)
シンクロしてなかったら、TableのPrimaryKeyを設定してから
ds.Tables(0).Rows.Find メソッドで行を検索して、そのRowのItemを
変更すれば何とかなると思う
もっといい方法があるような気もするけど…


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加