- ベストアンサー
別フォームのスプレッドの内容を取得したい
VB.net2003とSPREAD for .NET Formsを使用して開発を行っています。 1つのプロジェクトに2つのフォームがあり、FormAのSPREADの内容をFormBから取得したいのですが、うまくいきません。 FormBのLoadイベントでFormAのSPREADの内容を取得するのに下記のようなコーディングを行ってみましたがだめでした。 Dim frmFormA As FormA = New FormA txtText.Text = frmFormA.スプレッド名.ActiveSheet.Cells(frmFormA.スプレッド名.ActiveSheet.ActiveRowIndex,0).Value 別フォームのSPREADの内容を取得する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
.Netなので、Newでインスタンスは必須ですね^^; http://dobon.net/vb/dotnet/form/accessanotherformdata.html ここら辺が参考になりませんか。
その他の回答 (2)
- naganaga_001
- ベストアンサー率71% (172/242)
お世話になります。 少し確認させていただきたいのですが, ・Dim frmFormA As FormA = New FormA をした時は,FormAはもう既にどこかで開いている状態ですか? もし,開いていないのであれば, ・Dim frmFormA As FormA = New FormA とした時に,FormAのスプレッドシートに値が入るような処理がされていますか? (=Sub Newの中でそのような記述をしていますか?)
お礼
お返事ありがとうございます。 FormAは既に開かれている状態です。 フォーム間のデータ受渡しを行う方法はいろいろあるみたいですね。 とりあえず今回は、FormAからFormBを開く際にShowdialog(Me)とし、FormBでFormAを参照する際に下記のようにして見ました。 Dim frmFormA As FormA As Me.Owner 結果とりあえずうまくいきました。
- Kuppycat
- ベストアンサー率50% (109/216)
.Net環境がないので、憶測ですが。 >Dim frmFormA As FormA = New FormA この「New」いらないのではないでしょうか? これだと既存のFormAの参照ではなく新しいFormAを作ってしまうと思います。 VB6.0で言うところの、 Set frmFormA = New FormA と Set frmFormA = FromA の違いかと。 ご参考とまで。
お礼
お返事ありがとうございます。 教えていただいたHPの「所有されているフォームの取得 」を参考にやってみました。 FormAは開いたままなのでこの方法が一番簡単化と思い採用しました。 結果はうまくいきました。 別のフォームから内容を取得する方法はいろいろあるのですね。 他の方法はもうちょっとVB.NETに慣れてから挑戦しようと思います。