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
>'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句がないから
何だか変な感じがするな…
ツイート | ![]() |