[英]Periodically adding one row to DataGridView, but all rows get added at the same time
所以我有这个代码:
Ping ping = new Ping();
for(int i = 0; i<= number_of_pings; i++)
{
PingReply pingReply = ping.Send(address_to_send);
dataGridView1.Rows.Add(address_to_send, pingReply.Address, pingReply.RoundtripTime, pingReply.Status);
}
出于某种原因,当它被泵入dataGridView1
, dataGridview1
有五个(或我指定的 ping 数)数据字段。 我想要做的是定期填充dataGridView1
。 例如,在每个 ping 完成后,它的输出到dataGridView1
和下一个 ping 开始等等。
想法?
您可以在每次添加行后调用 datagridview 的更新方法:
dataGridView1.Update();
满足您需求的最佳解决方案之一是 BackgroundWorker。 在您的类中定义一个空的 DataTable,并将 Ping 代码放入 BackgroundWorker_DoWork 方法中。 然后将结果添加到数据表。 当此方法完成时,BackgroundWorker_WorkerComplete 已触发。 您应该再次运行 DoWork 方法以进行下一次 ping。
Ping ping = new Ping();
for(int i = 0; i<= number_of_pings; i++)
{
PingReply pingReply = ping.Send(address_to_send);
dataGridView1.Rows.Add(address_to_send, pingReply.Address, pingReply.RoundtripTime, pingReply.Status);
dataGridView1.PerformLayout();
Application.DoEvents();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.