DataGridの内容の変更をハンドルするには?

解決


GOUF  2005-04-12 20:06:51  No: 120826

環境はVB.NET2003です。
DataGridの内容の変更をハンドルするにはどうすればいいのでしょうか?
なんかよく使いそうな処理なのに、デフォルトではイベントが用意されていないようですね。

調べたところ、C#のサンプルとして
DataSetをDataColumnChangeEventHandlerを新規にインスタンス化して…
という方法はあったのですが、真似しようとしたところ、
C#との違いをうまく埋められなかったためか、うまくいきませんでした。
http://www.atmarkit.co.jp/fdotnet/dotnettips/099dgchgcell/dgchgcell.html

とりたいイベントとしては、セル(と呼ぶの?)の内容の文字列が変更された時と、
新しい行が追加されたとき、
それから、並び順が変更されたときもとりたいと思っています。

いい方法等ありましたらご教授よろしくお願いします。


特攻隊長まるるう  2005-04-14 20:29:16  No: 120827

せっかく見つけたんだからリンク先のソースをVBのコードに
置き換えるのが一番でしょうね。
>C#との違いをうまく埋められなかったためか、うまくいきませんでした。
と言っても文法として難しいものは使ってないから、本屋で
Cの入門本を10ページほど読めば何とかなりそうな…。
むしろVBのヘルプで DataSet ・ DataTable や DataColumn のサンプルを
見たほうが早い気もしますが…。


GOUF  2005-04-15 04:31:22  No: 120828

特攻隊長まるるうさん、ありがとうございます。
レスがつかなかったので、あきらめかけてました。

わからないのはC#ではなくてどちらかというとVB.NETの方です。
質問の記述に具体性が無いので伝わるわけはありませんでした。すみません。

HPの記述では
// セルのデータが変更されたときのイベントハンドルする
dataSet1.Tables[dataTable1.TableName].ColumnChanging +=
  new DataColumnChangeEventHandler(this.dataSet1_ColumnChanging);

とあります。C#ではDataTableオブジェクトに対し、ColumnChangingという
イベントハンドラ(?)が用意されていて、そこに新しいハンドラを追加する(?)
という感じ記述をしています。C#で試してみたところうまくいきました。

VB.NETで同じようにDataTableオブジェクトに対し、記述をしようとしたのですが、
そもそもVB.NETにはColumnChangingというイベントハンドラ(?)が
用意されていないようで、この部分をうまく変換できなかったという感じです。

WebのMSDN  Libraryで調べてみたのですが、
それっぽい物を見つけました。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatadatatableclasscolumnchangedtopic.asp

時間があまり無いのですぐには試せないのですが
うまくいきそうです。

ヒントをいただきありがとうございました。


GOUF  2005-04-16 20:22:38  No: 120829

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconworkingwithdatatableevents.asp

ここを参考に(というかほとんどそのまま)試したところ
DataGridの内容変更時のイベントをうまく取得できました。

特攻隊長まるるうさん、ありがとうございました。


ぽよ  2006-04-12 09:50:31  No: 120830

すみません。
同じ問題で悩んでいます。
リンク先のページは見れなくなっています。
どうやって解決したのか、教えてください!
お願いします


魔界の仮面弁士  2006-04-12 10:57:45  No: 120831

> リンク先のページは見れなくなっています。
提示された URL を少し加工して、

http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconworkingwithdatatableevents.asp

とすれば、今でも見えるかも。


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




  


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