プロが教えるわが家の防犯対策術!

こんにちは。
標準モジュールからフォームのリストボックスに文字を追加したいんですが、うまくいきません。
まず、button1をクリックすると、共通モジュールのサブルーチンを呼び出します。そして引数"0"を渡すと、Form1のListBox1に"hello"を追加したいのです。
実行させると、エラーはでないのですが、追加されるはずの"hello"がListBox1に追加されません。
たぶん
    frm1.ListBox1.Items.Add("hello")
あるいは
   Dim frm1 As New Form1()
あたりの宣言の仕方がまずいのだと思うんですが...
どなたか、ご教授よろしくお願いします。


■共通モジュール

Module Module1

Dim frm1 As New Form1()

Sub PC(ByVal PCrecieve As String)

If PCrecieve = "0" Then
frm1.ListBox1.Items.Add("hello")
End If

End Sub

End Module


■フォーム

Public Class Form1
Inherits System.Windows.Forms.Form

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Call PC("0")

End Sub

End Class

A 回答 (3件)

あまり気にしないでほしい出んけども、


Dim frm1 As New Form1()
としているだけで、
実体の
frm1 = Form1.ActiveForm
を関連付けていないからではないでしょうか?
たびたびすみませんでした。
自身なしです。
Sub PC(ByVal PCrecieve As String)
frm1 = Form1.ActiveForm
If PCrecieve = "0" Then
frm1.ListBox1.Items.Add("hello")
End If
End Sub
    • good
    • 0
この回答へのお礼

何度もありがとうございます。
確かにfrm1 = Form1.ActiveFormを加えたらリストボックスに"hello"が表示されるようになりました。しかし実体の関連付けというのは、必ずしなければならないんでしょうか?オブジェクト指向だから?
"ActiveForm"ってVB.netの本4冊持っているんですが、その内一冊にしかでてないんですよ。ここで質問しなかったら永久にわからなかったかもしれません。
ありがとうございました。

お礼日時:2004/05/03 21:20

できましたのでサンプルですが、ご報告です。



Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dd As Module1
dd = New Module1
dd.test()
End Sub
End Class

Class Module1


Sub test()
Dim frm As New Form1
frm = Form.ActiveForm
frm.Button1.Text = "hello"
MsgBox("hhh")
End Sub

End Class

あまり、よく理解できていないですが、、、、
    • good
    • 0

Formにコマンドボタン1つとリストボックスを1つ貼りつけました。


Project-Form1(コード)
Private Sub Command1_Click()
pc ("0")
End Sub
Project-Module1(コード)
Sub pc(ByVal PCarg As String)
If PCarg = "0" Then
Form1.List1.AddItem "Hello"
End If
End Sub
でフォームを実行-開始し、コマンドボタンをクリックするごとに、リストボックスにHelloが現れましたが。

この回答への補足

はい。このソースでできました。
書くのを忘れていましたが、VB.netで実行したいのです。回答された、このソースだと確かにVB6.0では動くのですが、VB.netだと「オブジェクト参照」に関してエラーになると思います。どなたかその辺りに詳しい人はいらっしゃらないでしょうか?

補足日時:2004/05/03 20:15
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A