内部类调用form1 sub

时间:2011-11-27 05:45:51

标签: vb.net class

嘿所有我想在一个位于我的form1代码中的类中调用public sub:

 Public Class Form1
    Public Shared objItem As ListViewItem

    Class Server
        Private Shared Sub StringMessageReceived(ByVal sender As Object, ByVal e As StringMessageEventArgs)
          MsgBox("Received message: " & Convert.ToString(e.Message))
          'Form1.ListView1.Items.Add(Convert.ToString(e.Message))
          Call Form1.writeToLV(Convert.ToString(e.Message))
        End Sub

    End Class

  Public Sub writeToLV(ByRef theStuff As String)
    MsgBox(theStuff)
    objItem = ListView1.Items.Add(theStuff)
  End Sub

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ListView1.View = View.Details
    ListView1.Columns.Add("Response", CInt(500))
  End Sub
 End Class

它发送的值很好但是当它将它放入listview时它永远不会吗?

任何指针?

大卫

1 个答案:

答案 0 :(得分:0)

最可能的解释是,在屏幕上打开的表单不是Server类中Form1引用的默认实例。

我认为你需要稍微重构你的代码:如果你只有一个Form1实例,显式创建表单并在全局变量(即g_Form1)中保持对它的引用,而不是依赖于VB - 提供默认实例(假设您只有1个表单实例。

如果你可以拥有多个Form1实例,我会将你的内部服务器静态类转换为一个接口,当创建一个新表单时,让它自己注册调用Server.StringMessageReceived的任何机制。