- - PR -
別フォームへdataowの値を渡したい
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-02-16 00:14
度々申し訳ありませんがVB2005について教えてください。
@A/B2つのフォームがありAフォームで取得したdatarowを下記のコード で記述しBフォームで値を取得したいのですがエラーが表示されます。 A値が渡せましたらCフォームDフォームでも同様の作業が発生しますので クラス?関数?として登録をしたいのですがどの様に行えばよろしいでしょうか? Aフォーム Public Class Aフォーム Public drow As DataRow END CLASS Bフォーム DIM ABC AS DATAROW = Aフォーム.drow DIM d AS INTEGER Debug.WriteLine(ABC(2)) d = abc(2) エラーメッセージ オブジェクト参照がオブジェクト インスタンスに設定されていません。 と表示されます。 サイト等で調べたところ NEWキーワードを使用しインスタンスを作成 する等とありましたが訳がわかりません。 よろしくお願いします。 | ||||||||
|
投稿日時: 2008-02-16 10:52
こんにちは。
エラー自体は文字通り、BフォームのABCというDataRowオブジェクトにAフォームのdrowオブジェクトの参照が設定されていません。 で、どうすればいいのかという所ですが。 少し情報が足りないので補足をお願いします。 1.AフォームとBフォームの関係は? 2.AフォームとBフォームはどのように表示されている? | ||||||||
|
投稿日時: 2008-02-16 11:18
NAKAPサンありがとうございます。
Aフォームのコマンドボタンをクリック→Bフォームを開く 上記の流れになっております。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles Button1.Click Dim f As New Bフォーム Bフォーム.Show(Me) End Sub Aフォームのイベントが上記となります。 よろしくお願いします。 | ||||||||
|
投稿日時: 2008-02-16 12:47
Aフォームで drow には何か値がセットされているのでしょうか?
| ||||||||
|
投稿日時: 2008-02-16 13:13
であれば、AフォームからBフォームを開く時に、AフォームからBフォームにdrowの値を渡せばよいでしょう。 Cフォーム、Dフォームを開く時も同じことです。 現在はBフォームからAフォームのdrowを参照しようとしています。 そして、Bフォームで宣言しているAフォームはBフォームを開いているAフォームとは別物となっています。 | ||||||||
|
投稿日時: 2008-02-16 14:29
よっしーサン
値はint型です。 nakapサン ご回答ありがとうございます。 勉強になりました、ですが値の渡しかたが解りません。 Aフォーム側でどの様な記述すればよろしいのですか? Aフォームから同様にCフォーム/Dフォームも開くのですが、 それぞれのコマンドボタンのイベントに記述が必要になるのでしょうか? [ メッセージ編集済み 編集者: ゆうじ 編集日時 2008-02-16 14:34 ] | ||||||||
|
投稿日時: 2008-02-16 16:31
いくつか方法はあります。 感覚的に分かりやすいのはBフォームにユーザープロパティを追加する方法でしょうか。
| ||||||||
|
投稿日時: 2008-02-16 18:40
NAKAPサマありがとうございます。
教えていただいた通りコードを記述し、Bフォームにて Debug.WriteLine(drow(2)) と確認をしましたが、エラーが起こります。 値の取得方法がいまいちわかりません。よろしくお願いします。 |