• ベストアンサー

Form間での値の受け渡しについて

質問ばかりですみません。 Form3で使用している変数filenameの値を Form1から指定したのですが、 うまくいきません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • wa_ka_rm
  • ベストアンサー率42% (6/14)
回答No.4

モジュールを作られてはいかがでしょうか? 私はだいたいこういう変数はモジュールで宣言してます。 (エラーにばっかり目が行ってました(^^;) プロジェクト→新しい項目の追加→モジュールを選択 モジュールにてfilenameを宣言。 Public filename As String Form1ではfilename = "rectmp.wav"のみで、 Form3でもfilenameを参照できると思います。 MediaPlayerはごめんなさい。わかりません。

matchan
質問者

お礼

で、で、できました!!!! 有難うございました!!!

その他の回答 (3)

  • wa_ka_rm
  • ベストアンサー率42% (6/14)
回答No.3

#1さんの補足から、Form1でForm3のオブジェクトを作っていないから・・・とか? Form3でPublicで宣言しておいてForm1にて Dim frm As New Form3 frm.filename = "~"

matchan
質問者

お礼

書くところが無かったので、お礼のメッセージに 書かせていただきます。 Form1で frm.filename = "rectmp.wav" If frm.filename = vbNullString Then Label4.Text = "frm.filenameはNULL" Else Label4.Text = frm.filename End If として調べたところ、NULLではなく、rectmp.wavが frm.filenameに格納されていました。 しかし、Form3で If filename = vbNullString Then Label1.Text = "null" End If として調べたところ、NULLになっていました。 やはり引渡しが上手く行ってなかったようです・・

matchan
質問者

補足

返信有難うございます。 Public Class Form1 Inherits System.Windows.Forms.Form        : Dim frm As New Form3()                中略 Public Sub listenButton_Click(・・・) ・・・ frm.filename = "rectmp.wav" End Sub これで良いでしょうか? 過去に書いたようなエラーは解消されました! 有難うございました。 しかし、Form3で Public Sub Button2_Click(・・・)・・・ AxMediaPlayer1.FileName = filename AxMediaPlayer1.Play() End Sub としてfilenameをMediaPlayerで再生 しようとすると「エラーを特定できません」 というエラーになってしまいました・・・

  • mfuku
  • ベストアンサー率50% (173/345)
回答No.2

#1の者です。 .NETなのですね。 VB6のつもりで回答しておりました。 .NETとVB6では同じVBでも言語仕様が大きく異なりますので私が回答した方法では.NETではうまく行かないと思います。 残念ながら、.NETは手元にはなく、責任ある回答はできかねますので、他の方からの回答をご期待下さい。 すみません・・。

matchan
質問者

お礼

いえいえ、本当に有難うございました! これからもよろしくお願いします。

  • mfuku
  • ベストアンサー率50% (173/345)
回答No.1

Form3に フォームレベルで Public 変数名 As データ型 と宣言し、 From1では Form3.変数名 = 値 という形で指定すれば、Form3で宣言した変数に他のフォームから値を指定することができます。

matchan
質問者

補足

返信有難うございます! 質問が上と2つ重複してしまってすみません。 Form3で Public Class Form3 Inherits System.Windows.Forms.Form Public filename As String         : として、Form1で Form3.filename = "rectmp.wav" としてみたのですが、これで良いでしょうか? すると、Form3.filenameのところで「非共有 メンバを参照するには、オブジェクト参照 が必要です。」というエラーがでてしまいます。 ちなみに環境は.Netなのですが、それが原因 なのでしょうか・・・。

関連するQ&A