【发布时间】:2009-04-25 12:35:57
【问题描述】:
我不敢相信,这在我的其他应用程序中有效,但在这个具有类似结构的应用程序中 - 它没有!
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 在我调用它的地方为空(接收函数)。 为什么那里是空的,而其他地方却不是?
【问题讨论】:
-
您不应该在属性设置器中做那样的工作,考虑将其更改为方法。