C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: フォーム間のデータ受け渡し(VB2008)


(過去ログ 58 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■33039 / inTopicNo.1)  フォーム間のデータ受け渡し(VB2008)
  
□投稿者/ たか (3回)-(2009/02/19(Thu) 15:27:56)

分類:[VB.NET/VB2005 以降] 

VB2008の初心者です。
もしかして恥ずかしい質問かもしれませんが、どうぞお願いします。

フォーム1からフォーム2を呼び出すときにデータを渡すのにフォーム2に設定したプロパティに値を設定したいのですが
下記のとおり呼び出し方法1の場合は、フォーム2のプロパティを参照できないのですが、方法2の場合は
参照できます。どうしてでしょうか?どうぞ教えてください。

「フォーム2のプロパティ」
Private Pttt As String
Public Property ttt() As String
Get
Return Pttt
End Get
Set(ByVal value As String)
Pttt = value
End Set
End Property

「フォーム1での呼び出し方」
方法1
dim fff as Form
fff = new form2
fff.show()
fff.ttt = "100" ←この方法は参照できない。

方法2
dim fff as New form2
fff.show()
fff.ttt = "100" ←この方法は参照できる。


引用返信 編集キー/
■33041 / inTopicNo.2)  Re[1]: フォーム間のデータ受け渡し(VB2008)
□投稿者/ επιστημη (1750回)-(2009/02/19(Thu) 15:34:31)
επιστημη さんの Web サイト
> 「フォーム1での呼び出し方」
> 方法1
> dim fff as Form
> fff = new form2
> fff.show()
> fff.ttt = "100" ←この方法は参照できない。

fffの型がFormである。
Formにはtttというメンバは無い。
したがって fff.ttt は参照できない。

引用返信 編集キー/
■33043 / inTopicNo.3)  Re[2]: フォーム間のデータ受け渡し(VB2008)
□投稿者/ たか (5回)-(2009/02/19(Thu) 16:06:45)
No33041 (επιστημη さん) に返信
どちらの方法でもフォーム2を開くという意味では同じでしたので
質問してしまいました。
ご回答ありがとうございます。

引用返信 編集キー/
■33046 / inTopicNo.4)  Re[3]: フォーム間のデータ受け渡し(VB2008)
□投稿者/ επιστημη (1751回)-(2009/02/19(Thu) 16:44:18)
επιστημη さんの Web サイト
2009/02/19(Thu) 16:51:02 編集(投稿者)

> どちらの方法でもフォーム2を開くという意味では同じでしたので

ちょびっと違うのね ^^;

「どちらの方法でもフォームを開くという意味では同じ」なので
form.show() によって form2.show() できる。

ところがプロパティtttはform2で"新たに付け加えられた"もの。
だから form2.ttt できるけど form.ttt できない(formはtttの存在を知らない)。

# ↓教訓:「やればできる!」
解決済み
引用返信 編集キー/
■33047 / inTopicNo.5)  Re[4]: フォーム間のデータ受け渡し(VB2008)
□投稿者/ みきぬ (396回)-(2009/02/19(Thu) 16:46:28)
方法3
dim fff as Form
fff = new form2
fff.show()
DirectCast(fff, form2).ttt = "100"
引用返信 編集キー/
■33054 / inTopicNo.6)  Re[4]: フォーム間のデータ受け渡し(VB2008)
□投稿者/ たか (6回)-(2009/02/19(Thu) 18:01:37)
2009/02/19(Thu) 18:02:29 編集(投稿者)
2009/02/19(Thu) 18:02:23 編集(投稿者)

επιστημη さん、みきぬさん

ご丁寧にありがとうございます。

教えていただいたことは理解できるのですが

fff = new form2にて
form=form2だと思ったのですが、
これが間違いなのですね。。

オブジェクトやクラスをもう一度学んでみます、
ありがとうございます。


解決済み
引用返信 編集キー/
■33061 / inTopicNo.7)  Re[5]: フォーム間のデータ受け渡し(VB2008)
□投稿者/ επιστημη (1752回)-(2009/02/19(Thu) 19:50:45)
επιστημη さんの Web サイト
> fff = new form2にて
> form=form2だと思ったのですが、
> これが間違いなのですね。。

fffに入っているのはform2ですが、
型がformである限りformとして扱われます。

解決済み
引用返信 編集キー/
■33064 / inTopicNo.8)  Re[5]: フォーム間のデータ受け渡し(VB2008)
□投稿者/ よねKEN (272回)-(2009/02/19(Thu) 21:36:25)
2009/02/19(Thu) 21:36:36 編集(投稿者)

> fff = new form2にて
> form=form2だと思ったのですが、
> これが間違いなのですね。。

丸いもの(=Form2)をそれより小さな四角い窓(=Form)から覗いたら、四角にしか見えないですよね。
そんな感じです。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -