嘿所有我想在一个位于我的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时它永远不会吗?
任何指针?
大卫
答案 0 :(得分:0)
最可能的解释是,在屏幕上打开的表单不是Server类中Form1引用的默认实例。
我认为你需要稍微重构你的代码:如果你只有一个Form1实例,显式创建表单并在全局变量(即g_Form1)中保持对它的引用,而不是依赖于VB - 提供默认实例(假设您只有1个表单实例。
如果你可以拥有多个Form1实例,我会将你的内部服务器静态类转换为一个接口,当创建一个新表单时,让它自己注册调用Server.StringMessageReceived的任何机制。