麻烦来了.我想从datagridview中删除所有行.这个我如何添加行:
private void ReadCompleteCallback(object clientHandle, Opc.Da.ItemValueResult[] results)
{
foreach (Opc.Da.ItemValueResult readResult in results)
{
dataGridView1.Invoke(new MethodInvoker(() => dataGridView1.Rows.Add(readResult.ItemName, readResult.Quality, readResult.Timestamp,readResult.Value)));
}
}
Run Code Online (Sandbox Code Playgroud)
它是如何清除gridview的:
private void treeView1_SelectionsChanged(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
items = new Opc.Da.Item[treeView1.SelectedNodes.Count];
foreach (TreeNode x in treeView1.SelectedNodes) {
items[treeView1.SelectedNodes.IndexOf(x)] = new Opc.Da.Item();
items[treeView1.SelectedNodes.IndexOf(x)].ItemName = x.Text;
}
group.AddItems(items);
group.Read(group.Items, 123, new Opc.Da.ReadCompleteEventHandler(ReadCompleteCallback), out req);
}
Run Code Online (Sandbox Code Playgroud)
在调试中,我看到dataGridVIew1.Rows.Count = 0,但在表单上,网格并没有变得清晰.什么意思?在树中的每个选择,我想看到表中的新行.
我正在使用Threading.Timer
,如:
new Timer(new TimerCallback(y=>
{
try
{
Save(Read(DateTime.Now));
// here i want to dispose this timer
}
catch
{
}
}),null,100000,10000);
Run Code Online (Sandbox Code Playgroud)
如何在回调中处理此计时器.或解决方法?更新:让我解释一下情况.我想尝试调用方法"保存",同时抛出异常.如果它工作,我需要停止计时器.
我正在使用opc基础的.NET API编写opc客户端.
在样本中我只看到,项目的名称是硬编码的,如:
items[0] = new Opc.Da.Item();
items[0].ItemName = "blahblahblah";
Run Code Online (Sandbox Code Playgroud)
我想要的不是用手写下所有物品的名字.我想从服务器加载所有项目,例如树.我该怎么做?