这是读取变量编号和值,写道类里保存
public static List<MyOPCItem> OPCList = new List<MyOPCItem>();//把读出的变量编号和值放到这个类里
public static void AsyncReadHandler(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Qualities, ref Array TimeStamps, ref Array Errors)
{
foreach (object item in ClientHandles)
{
string tagid ;
tagid = Convert.ToInt32(item).ToString();
OPCList.Add(new MyOPCItem() { Tagid = tagid });
//MessageBox.Show(tagid); //用弹出窗口测试过,变量编号和值都顺序读出来了
}
foreach (object item1 in ItemValues)
{
string tagvalue ;
tagvalue = item1.ToString();
OPCList.Add(new MyOPCItem() { Value = tagvalue });
//MessageBox.Show(tagvalue);
}
}
//这是读取变量和编号显示到控件里
for (int i = 1; i < hs;)
{
//读取变量编号
this.listView1.Items.Add(Convert.ToString(OPCList[i-1].Tagid));
this.listView1.Items[i - 1].SubItems.Add(mytag[Convert.ToInt32(OPCList[i - 1].Tagid)]);
this.listView1.Items[i - 1].SubItems.Add(myname[Convert.ToInt32(OPCList[i - 1].Tagid)]);
//读取值
this.listView1.Items[i - 1].SubItems.Add(OPCList[Convert.ToInt32(OPCList[i - 1].Tagid)].Value);
this.listView1.Items[i - 1].SubItems.Add(DateTime.Now.ToLocalTime().ToString());
i++;
}
运行起来变量编号可以正常读出,但是值只能读出第一个,且对应的类的位置随机
我尝试遍历所有值,把不为空的写进去,但是程序就卡死了
我希望能顺序读出值并于值编号对应,并显示在控件上
OPCList到底是个啥,怎么什么都往里放呢
OPCList本身是静态的,你不断往里add,也不清空,会越来越长,这是第一个问题
第二个问题是,标签和value怎么存在同一个list里面?这什么乱七八糟的呀