我不敢相信,这在我的其他应用程序中有效,但在这个具有类似结构的应用程序中 - 它没有!
public string ListAdd
{
set
{
if (listView1.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
listView1.Items.Add(value);
});
}
else
{
listView1.Items.Add(value);
}
}
}
我这样称呼它:
var formz = Form.ActiveForm as Form1;
if (formz != null)
formz.ListAdd = "asdasdasdasd";
如果我从通过 TCP 接收数据包的函数(我想把它放在 listView 上)调用它 - 什么都不会发生,但是如果我在初始化 WinSock 的同一个类中调用它 - 它可以工作。
问题可能出在哪里?
编辑: 我刚刚调试了应用程序,formz 在我调用它的地方为空(接收函数)。为什么它在那里为空,但在其他任何地方都没有?