繁体   English   中英

定期向 DataGridView 添加一行,但同时添加所有行

[英]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);         
}

出于某种原因,当它被泵入dataGridView1dataGridview1有五个(或我指定的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM