Form3からForm1のテキストボックスにアクセスについて?


初心者  2008-09-17 00:07:58  No: 140419

vb2005でプログラムを組んでいます。
Form3からForm1のテキストボックスにアクセスしようと思います
(サンプル1)、ですが名前'textBox1"は宣言されていませんと
エラー表示されてしまいます、
又フォーム間の受渡しをしようと思い(サンプル2)にすると
'WindowsApplication1.Form1.Private Dim WithEvents textBox1 As System.Windows.Forms.TextBox' は 'Private' であるため、このコンテキストではアクセスできませんと表示されてしまいます。
内容不足のサンプルでしょうが解決方法教えて頂けませんでしょうか。
ちなみにサンプルはC#のソースをオンラインサイト(変換サイト)でVBに変換した物です。

--------  サンプル1  --------

Public Structure Param1
      Public X As Integer 
End Structure

Class Form1
    Public Parameter1 As Param1

    Public Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
        textBox1.Text = Parameter1.X.ToString()
     End Sub 'Form1_Load 

Public Sub Form3_Load(ByVal sender As Object, ByVal e As EventArgs)
        textBox1.Text = XMax.ToString()
 End Sub 'Form3_Load

--------  サンプル2  --------

Public Sub Form3_Load(ByVal sender As Object, ByVal e As EventArgs)
        Form1.textBox1.Text = XMax.ToString()
 End Sub 'Form3_Load


  2008-09-17 17:48:15  No: 140420

>'WindowsApplication1.Form1.Private Dim WithEvents textBox1 As System.Windows.Forms.TextBox' は 'Private' であるため、このコンテキストではアクセスできませんと表示されてしまいます。

…とあるが、これは Form1.Designer.vb 内の記述?
普通はTextBox貼り付けたら Private じゃなくて Friend になるはずだが…
無理やりコンバートしてるみたいだから、それが悪さしてるのか?
まぁ、とりあえず Friend にしてみたらアクセスできるんでない?
"WindowsApplication1.Form1.Private Dim" のかわりに
"Friend" のみでいい
分からなかったら、適当にTextBoxを貼り付けてからDesigner.vbを開いてみれば
中身が変わってるから、それを参考にすれば分かる
ちなみにDesigner.vbは変にいじったら動かなくなるんで、間違わないように注意

その辺を変えたくなければ、TextBox1で外からアクセスしたい項目を
Form1のFriend or Publicプロパティとして(プロパティを新たに作成)
外部に公開してしまえばいい

あんま関係ないけど、提示されたコードにHandles句がないから
何だか変な感じがするな…


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加