- - PR -
配列や構造体のフォーム間の引き渡し方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-11-10 20:08
初めまして
Windowsフォームで開発をしております。 たとえばForm1で定義したユーザー定義の配列をForm2へ引き渡したいと考えておりますがうまくいきません。 Form2のSub New()に引数を設定すると、String型やInteger型などを引き渡せることはできましたが、なぜか配列や構造体だとだめです。 どなたか上手い方法をご存じの方、いらっしゃいましたら是非ご教授頂けますようお願いします。 | ||||||||
|
投稿日時: 2003-11-10 21:47
どのようにやってみて、どう駄目だったんでしょう? | ||||||||
|
投稿日時: 2003-11-12 09:51
早速のレスありがとうございます。
たとえば Form2のSub New()を Public Sub New(ByVal arr) ・・・ End Sub として もちろん Public arr() As Integer の宣言も行っています。 Form1から Dim array(2) As Integer array(1) = 123 Dim frm As New Form2(array) frm.Show() としてForm2を表示してForm2上のテキストボックスにForm2_Loadイベントで Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Label1.Text = arr(1) End Sub と言う簡単なサンプルを作ってみたんですが 「オブジェクト参照がオブジェクト インスタンスに設定されていません。」 とエラーとなってしまいます。 渡す変数が配列や構造体以外の場合はうまいこといくのですが・・・ こんな感じでうまくいっておりません。 考え違いをしているのかもしれません、よろしくお願いします。 | ||||||||
|
投稿日時: 2003-11-12 10:53
> Form2のSub New()を
> Public Sub New(ByVal arr) > ・・・ > End Sub この・・・の中身はどうなってるんでしょう? # Object で受けてるっぽいのがすごい怪しいんですが… > として > もちろん > Public arr() As Integer > の宣言も行っています。 これは Form2 のフィールドとして定義していると考えてよいでしょうか? そうであるとして、渡された引数は arr に設定しているんでしょうか(・・・の部分)? 単に引数を受け取るだけ受け取って何もしてないだけにも見えますが… > 渡す変数が配列や構造体以外の場合はうまいこといくのですが・・・ 本当にうまいこといってますか? 渡した値がちゃんと取れてますか? | ||||||||
|
投稿日時: 2003-11-12 12:59
eijiさん、こんにちは。
Public Sub New(ByVal arr() As Integer) とすると、どうですか?
どこで宣言しているのか判りませんが(Form2?)、コンストラクタの引数と名前が一緒ですけど大丈夫ですか? | ||||||||
|
投稿日時: 2003-11-12 13:32
public class form2 ...
public arr() as integer publuc sub new(arr) ... end sub ... end class こんなことしてます?これは、エラーになりますよ。 |
1