winform中我有两个窗体,我在a窗体中opcua通讯数据订阅,在b窗体中的datagridview中实时显示数据。现在的问题是a窗体中我可以把数据赋值给datagridview指定行列,但是在b窗体中无法显示数据。
/// <summary>在a窗体中的数据订阅
/// Subscription_s the data changed.订阅数据更改
/// </summary>
/// <param name="subscription">The subscription.</param>
/// <param name="e">
/// The <see cref="DataChangedEventArgs" /> instance containing the event data.
/// </param>
private void subscription_DataChanged(Subscription subscription, DataChangedEventArgs e)
{
if (InvokeRequired)
{
BeginInvoke(new DataChangedEventHandler(subscription_DataChanged), subscription, e);
return;
}
Form3 form3 = new Form3();
foreach (var dataChange in e.DataChanges)
{
if (dataChange.Value.StatusCode.IsBad()) continue;
form3.dataGridView1.Rows.Add(18);
form3.dataGridView1.Rows[Convert.ToInt32(dataChange.MonitoredItem.ClientHandle - 1)].Cells[1].Value = String.Format(dataChange.Value.ToString());//调试显示有数据传入,应该在b窗体(form3)datagridview中报警那一列显示数据,但不显示。
}
}