プロが教える店舗&オフィスのセキュリティ対策術

VB2005の勉強をしている者です。
いろいろ調べたのですが、どうしてもわからないことがあるので、
教えてください。

現在行なおうとしているこは、
DataGridViewで選択されている行のデータ全てを、
他のフォームに渡すということです。

いろいろ考えた結果、選択された行のデータを配列に保持して、
その配列を別のフォームに渡せば
希望どおりの動きをすることはわかったのですが、
どうも無駄な処理をしてしまっている気がするんです。

例えば、選択した行のデータのみを、
新たに宣言したDataTableにコピーして、
そのDataTableを他のフォームに渡すというようなことは、
できないのでしょうか?

もしくは、
Form2.show(DataGridView1.CurrentRow)
のように、直接渡すことができれば、一番嬉しいのですが・・・

なにぶん、独学で勉強している初心者なので、
かなり的外れな質問になってしまっているかもしれませんが、
もしお分かりでしたら、アドバイスを下さい。

よろしくお願いします。

A 回答 (1件)

元のデータテーブルのクローンを作る。


Dim dt2 As DataTable = 元のデータテーブル.Clone
クローンされたデータテーブルに、選択行のデータをインポートする。
dt2.ImportRow(元のデータテーブル.Rows(選択行のインデックス))

これで「選択した行のデータのみを、新たに宣言したDataTableにコピー」は出来ます。
直書きなので、コードに不備があるかもしれませんが、そこはご容赦下さい。
    • good
    • 1
この回答へのお礼

ご返答ありがとうございます。
クローンとかインポートとかはまるで考えていなかったので、
とても勉強になりました。
早速試してみます。

それと、
Form2.show(DataGridView1.CurrentRow)
のやり方は、自分なりにいろいろ調べてみて、
どうにかわかりました。
受け取る側で
Public Overloads Sub Show(ByVal DataRow As System.Windows.Forms.DataGridViewRow)
とするば、1行のデータのみを引き渡せました。

お礼日時:2008/07/31 12:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています