環境はVB.NET2003です。
DataGridの内容の変更をハンドルするにはどうすればいいのでしょうか?
なんかよく使いそうな処理なのに、デフォルトではイベントが用意されていないようですね。
調べたところ、C#のサンプルとして
DataSetをDataColumnChangeEventHandlerを新規にインスタンス化して…
という方法はあったのですが、真似しようとしたところ、
C#との違いをうまく埋められなかったためか、うまくいきませんでした。
http://www.atmarkit.co.jp/fdotnet/dotnettips/099dgchgcell/dgchgcell.html
とりたいイベントとしては、セル(と呼ぶの?)の内容の文字列が変更された時と、
新しい行が追加されたとき、
それから、並び順が変更されたときもとりたいと思っています。
いい方法等ありましたらご教授よろしくお願いします。
せっかく見つけたんだからリンク先のソースをVBのコードに
置き換えるのが一番でしょうね。
>C#との違いをうまく埋められなかったためか、うまくいきませんでした。
と言っても文法として難しいものは使ってないから、本屋で
Cの入門本を10ページほど読めば何とかなりそうな…。
むしろVBのヘルプで DataSet ・ DataTable や DataColumn のサンプルを
見たほうが早い気もしますが…。
特攻隊長まるるうさん、ありがとうございます。
レスがつかなかったので、あきらめかけてました。
わからないのは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
時間があまり無いのですぐには試せないのですが
うまくいきそうです。
ヒントをいただきありがとうございました。
ここを参考に(というかほとんどそのまま)試したところ
DataGridの内容変更時のイベントをうまく取得できました。
特攻隊長まるるうさん、ありがとうございました。
すみません。
同じ問題で悩んでいます。
リンク先のページは見れなくなっています。
どうやって解決したのか、教えてください!
お願いします
> リンク先のページは見れなくなっています。
提示された URL を少し加工して、
http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconworkingwithdatatableevents.asp
とすれば、今でも見えるかも。
ツイート | ![]() |